Angular 2中的双向绑定与NgModel和突变绑定属性?
我正在使用Angular 2 beta 5.
这是我的观点: <textarea [(ngModel)]="pendingMessage" (keydown.enter)="sendMessage()"></textarea> 这是我的组件: @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 } } 这种双向绑定的整个概念似乎正常.当我在字段中键入一些文本并按Enter键时,我可以看到pendingMessage确实是我在字段中输入的内容. 但是,在我尝试将pendingMessage设置为“blah”的下面一行中,我还期望这更新文本字段以包含“blah”.为什么不是这样?这不是双向绑定的重点吗? 我知道Angular 2不能神奇地知道值何时发生变化,但我希望在评估事件后它会进行脏检查.有没有办法让它自动做这样的事情或以某种方式接受改变?我想避免使用申请.
更新
添加ngDefaultControl <paper-input ngDefaultControl [(ng-model)]="address"> 另见https://github.com/angular/angular/issues/5360 ** 我想这是ngModel实现的当前限制.它绑定到元素的value字段,但对于textarea,它应该绑定到文本AFAIR字段.看起来textarea会触发一个ngModel监听的事件,使其在一个方向上工作. 您可以通过实现自定义ValueAccessor来解决此问题 也可以看看 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |