动态更新文本框后更新范围值

时间:2014-07-08 10:09:59

标签: javascript jquery angularjs angular-ngmodel

AngularJS中的

我有一个场景,用户在弹出窗口中从网格中选择一个值,所选值显示在容器页面的文本框中。用户选择一个值后,弹出窗口会引发一个在容器页面中捕获的事件。现在我可以使用.val()设置文本框的值,但如何更新模型?

$scope.$on('rowSelectedInPopup', function (event: ng.IAngularEvent, ...data) {
    if (elementId === data[1].toString()) {
        $(elementId).val(data[0].toString());
        $(elementId + "_inlinelbl").html(data[0].toString());
    }
});

这是我的文本框和标签html:

<input type="text" value="" id="ServiceManagerglookup" ng-model="Model.Person2.Name" />
<label id="ServiceManagerglookup_inlinelbl" ng-model="Model.Person2.Name">ABC</label>

请注意,文本框可以与范围内的任意字段绑定,例如Model.AVC.XYZ.LMN

1 个答案:

答案 0 :(得分:1)

除了更改值之外,您还需要通知Angular使用

更改值

$(elementId).trigger('input');

喜欢这个

$scope.$on('rowSelectedInPopup', function (event: ng.IAngularEvent, ...data) {
    if (elementId === data[1].toString()) {
        $(elementId).val(data[0].toString());
        $(elementId + "_inlinelbl").html(data[0].toString());
        $(elementId).trigger('input');
    }
});

此输入侦听器的触发通常由浏览器完成 - 因此当您直接更改模型时,您也必须触发该事件。