[英]AngularJS one-way binding not working properly
我试图绑定输入(单向),无论谁更改了它的值,它都将不再正确绑定
//controller => on row click => change input
$scope.getNote = function (note)
{
$scope.currentNote = note;
};
//view
<input type="text" value="{{currentNote.Title}}" >
在这种情况下,将调用getNote并正确填充输入。 但是,当我更改输入的值并再次调用getNote时,即使输入的value属性包含正确的值,输入也不会显示新值。 因此以某种方式无法向最终用户显示正确的价值。
例如:
1- GetNote的第一个值=“ Hello World”
2-我以普通用户的身份将输入的值更改为“ Foo”
3-再次调用GetNote,然后我得到value =“ Hello World”,但在屏幕上显示“ Foo”
破解解决方案:
//controller object value copy using jquery
$scope.currentNote = jQuery.extend({}, note);
//view
<input type="text" ng-model="currentNote.Title" >
希望有一个优雅的解决方案
我认为您应该尝试使用ngValue指令,如sbaaaang所说。 但是没有花括号(此处的文档: https : //docs.angularjs.org/api/ng/directive/ngValue )。
编辑:
也许如果您只想使用单向数据绑定,那么div就足以满足您的目的,而不是输入。 然后,您可以根据需要设置样式。
使用ng-value =“”代替value =“”应该可以解决
我会做:
$scope.getNote = function (note)
{
$scope.currentNote = note;
};
//view
<input type="text" ng-model="currentNote.Title" ng-value="currentNote.Title" />
如果仍然遇到问题,请尝试:
$scope.getNote = function (note)
{
$scope.$on(function () {
$scope.currentNote = note;
});
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.