Angular 2+一种从视图目标到数据源的数据绑定方法

时间:2018-08-15 13:31:09

标签: angular angular2-databinding

在我的有角度的应用程序中,我有一个允许用户设置描述值的元素。我希望该值在数据源中可访问。我使用2-way数据绑定使它起作用,如下所示:

<textarea id="MediaDescription" name="description" class="form-control" [(ngModel)]="description"></textarea>

但是,考虑到我的用例,这里不需要2向数据绑定。虽然视图模型需要能够更新数据源,但事实并非如此。

我尝试使用(ngModelChange)来执行此操作,但这似乎没有被调用(我通过通过数据源中的OnChanges()方法输出值来对此进行了测试)。

如何最好地重写此代码,以使我的<textarea>值仅从“视图源”绑定到“数据源”,而不是相反?

2 个答案:

答案 0 :(得分:1)

您真的不需要[ 1 1 2 3 5 8 13 21 34 55] 。相反,您可以收听ngModel事件

change

注意:<textarea id="MediaDescription" name="description" class="form-control" (change)="description = $event.target.value"></textarea> 事件仅在(change)元素失去焦点时才触发。这是局限性。

DEMO

答案 1 :(得分:1)

要在每次textarea内容更改时更新数据源,而不使用数据绑定,可以单独应用ngModel指令以允许触发(ngModelChange)

<textarea name="description" ngModel (ngModelChange)="description = $event" ...></textarea>

有关演示,请参见this stackblitz