我正在尝试绑定输入(单向),无论谁改变其值,它都不再正确绑定
//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,我得到值=“Hello World”,但在屏幕上显示“Foo”
黑客解决方案:
//controller object value copy using jquery
$scope.currentNote = jQuery.extend({}, note);
//view
<input type="text" ng-model="currentNote.Title" >
希望有一个优雅的解决方案
答案 0 :(得分:1)
我认为你应该尝试使用ngValue指令,正如sbaaaang所说。但没有大括号(文档:https://docs.angularjs.org/api/ng/directive/ngValue)。
编辑:
也许如果您只想使用单向数据绑定,div就足以满足您的需要,而不是输入。然后你可以根据需要设计它。
答案 1 :(得分:0)
使用 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;
});
};