我有一个场景,用户在弹出窗口中从网格中选择一个值,所选值显示在容器页面的文本框中。用户选择一个值后,弹出窗口会引发一个在容器页面中捕获的事件。现在我可以使用.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
答案 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');
}
});
此输入侦听器的触发通常由浏览器完成 - 因此当您直接更改模型时,您也必须触发该事件。