我正在使用Angular 2 beta 5.
这是我的观点:
<textarea [(ngModel)]="pendingMessage" (keydown.enter)="sendMessage()"></textarea>
Run Code Online (Sandbox Code Playgroud)
这是我的组件:
@Component({
//...
})
export class AppComponent {
private _pendingMessage: string;
public get pendingMessage() {
return this._pendingMessage;
}
public set pendingMessage(value: string) {
this._pendingMessage = value;
}
constructor() {
this.pendingMessage = "initial stuff"; //this shows up in the text field initially
}
public sendMessage() {
console.log(this.pendingMessage); //here, pending message is indeed whatever I typed in the text field
this.pendingMessage = "blah";
//here I expected the textfield to now contain "blah", but it doesn't
}
}
Run Code Online (Sandbox Code Playgroud)
这种双向绑定的整个概念似乎正常.当我在字段中输入一些文本然后按回车键时,我可以看到这pendingMessage确实是我在字段中输入的内容.
然而,在下面,我尝试设置行pendingMessage来"blah",我也期待这个更新文本字段包含"嗒嗒".为什么不是这样?这不是双向绑定的重点吗?
我知道Angular 2不能神奇地知道值何时发生变化,但我希望在评估事件后它会进行脏检查.有没有办法让它自动做这样的事情或以某种方式接受改变?我想避免使用apply.
更新
加 ngDefaultControl
<paper-input ngDefaultControl [(ng-model)]="address">
Run Code Online (Sandbox Code Playgroud)
另见https://github.com/angular/angular/issues/5360
**
我想这是实施的当前限制ngModel.它绑定到value元素的字段,但是它应该绑定到textarea它的textAFAIR字段.似乎textarea火灾是一个ngModel倾听的事件,使它在一个方向上发挥作用.
您可以通过实现自定义来解决此问题 ValueAccessor
另请参阅
- ngModel自定义ValuesAccessor
- Angular 2自定义表单输入
- 将角度2模型绑定到聚合物下拉列表
| 归档时间: |
|
| 查看次数: |
11434 次 |
| 最近记录: |