I'm trying to do the simplest two way binding in Angular2. I would like to share a variable between my component and it's template.
My template is:
<textarea [(ngModel)]="currentQuery"></textarea>
And my component is:
import { Component } from '@angular/core';
import { ViewChild } from '@angular/core';
import { OnInit } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'vs-home',
templateUrl: 'home.component.html'
})
export class HomeComponent {
private currentQuery: string = '';
}
According to the docs this should work but I'm getting:
Error: Uncaught (in promise): Error: Template parse errors:
Can't bind to 'ngModel' since it isn't a known property of 'textarea'. ("
<div class="query-bar-container">
<textarea [ERROR ->][(ngModel)]="currentQuery"></textarea>
<!-- <button type="button" class="btn btn-default" (click"): HomeComponent@2:15
<textarea> does not support the value attribute.
The value property sets or returns the contents of a text area. Note: The value of a text area is the text between the <textarea> and </textarea> tags.
The <textarea> tag defines a multi-line text input control. The <textarea> element is often used in a form, to collect user inputs like comments or reviews. A text area can hold an unlimited number of characters, and the text renders in a fixed-width font (usually Courier).
input type='textarea' is not valid HTML. It partially worked because it simply defaulted to input type='text' , hence why the OP originally only saw one line.
@NgModule({
...
imports: [
/* BrowserModule or CommonModule */,
FormsModule /* or RectiveFormsModule */]
...
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With