后更新范围值我有一种情景,用户从弹出框中的网格中选择一个值,并将所选值显示在容器页的文本框中。在用户选择一个值后,弹出引发一个在容器页面中捕获的事件。现在我可以使用.val()
设置文本框的值,但是如何更新模型?在AngularJS中动态更新文本框
$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
对不起,如果我误解,但;记住双向绑定是Angular的关键功能之一 - 而不是改变视图,你应该简单地改变模型,数据会自动更新。所以通过你的控制器只需设置'$ scope.Model.Person2.Name = html(data [0] .toString())'。当你完成这个工作时,带有ng-model =“Model.Person2.Name”的输入元素将被简单地更新。 –
嗨,感谢您的回复。问题是Model.Person2.Name也是动态的,因为控件可以在不同的地方使用并绑定到不同的字段。所以我必须做一些像scope [“Model”] [“Person2”] [“Name”]的东西,它可以随着每个屏幕而改变。所以我认为正确的问题是“我如何更新范围内的值,如果我有像Model.Person2.Name或Model.ABC.XYZ.PQR字符串” – Haris
我看到 - 我想不出任何其他解决方案简单地分割所述字符串; var array = string.split('。')'然后做'$ scope.array [0] .array [1] .array [2] .array [3] = html(data [0] .toString() )'不完全是一个很好的解决方案,但解决方案 –