2017-11-15 23 views
1
以下angular2成分で

双方向データバインディング - ngModel

export class HomeComponent implements OnInit { 
    homeTitle = "Welcome to the home page"; 
    myString = "I like red"; 
    myBoolean = false; 

    alertMe(val){ 
    alert(val); 
    } 

    obj = { 
    name: "Yoshi", 
    belt: "Black" 
    }; 

    constructor() { } 

    ngOnInit() { 
    } 

} 

双方向データobj.nameがない理由、ビュー以下ため

<p> 
    {{homeTitle}} 
</p> 

<!-- Property binding --> 

<!-- input value="Hai" --> 
<input [value]="myString"> 
<input [required]="myBoolean"> 

<button (click)="alertMe('I like x')">Click me</button> 

<hr> 
<!-- All above elements are working fine --> 

<!-- 2 way data binding --> 
<input [(ngModel)]="obj.name"> 
<p>{{obj.name}}</p> 
<p>{{obj.belt}}</p> 

動作しない結合入力要素にレンダリングしますか?

答えて

2

ようなあなたのモジュールにちょうどいいえ、それは動作しませんFormsModule

import { FormsModule } from '@angular/forms'; 
imports: [ 
    .. 
    FormsModule 
] 
+0

わかりません、どのモジュールですか?私はちょうど1つのコンポーネントを書きました。完全なソースツリーには 'app.module.ts'があります。 – overexchange

+0

一つのコンポーネントを書いたので、コンポーネントを宣言したモジュールなので、 'AppModule' –

+0

双方向データバインディングに' Formsmodule'が必要なのはなぜですか?なぜ角度がこのモジュールを自動的に追加しないのですか?データバインディングがこのモジュールなしでうまく動作しています – overexchange

0

申し訳ありませんが、私はそれが今..あなたが入力にname="myModelName"を指定する必要がありました:

<input name="myModelName" [(ngModel)]="obj.name">

+0

を追加します。 '[xyz]'が表示されます – overexchange

+0

ただ編集された答えです。 –

+0

name属性では機能しませんでした。なぜそれは動作するはずですか? 'name'は角DOCSのhtmlネイティブ属性 – overexchange

関連する問題