AngularJS单向绑定工作不正常
问题描述:
我想要绑定的输入(单程),无论是谁,如果我改变其值其不再绑定正确AngularJS单向绑定工作不正常
//controller => on row click => change input
$scope.getNote = function (note)
{
$scope.currentNote = note;
};
//view
<input type="text" value="{{currentNote.Title}}" >
这是该方案,getNote被被调用并且输入被正确填充。但是,当我更改输入的值并再次调用getNote时,即使输入的值属性包含正确的值,输入也不会显示新值。所以不知何故,它没有向最终用户显示正确的价值。
如:
1-从GetNote第一个值=“Hello World”的
2 - 我输入的值更改为“富”作为一个普通用户
3-呼叫GetNote再次和我得到的值= “Hello World” 的,但在屏幕上显示 “富”
哈克解决方案:
//controller object value copy using jquery
$scope.currentNote = jQuery.extend({}, note);
//view
<input type="text" ng-model="currentNote.Title" >
我希望一个优雅的解决方案
答
使用NG值= “” 的代替值= “”应该修复
我会做:
$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;
});
};
答
我想你应该尝试使用ngValue指令,正如sbaaaang所说。但没有花括号(文档在这里:https://docs.angularjs.org/api/ng/directive/ngValue)。
编辑:
也许,如果你只是想使用单向数据绑定一个div会为你的目的就足够了,而不是输入。然后,您可以根据需要设计它。
+0
是的错别字抱歉;) – sbaaaang 2014-09-01 17:52:30
你需要使用'' – PSL 2014-09-01 17:49:45