在这里摆弄http://jsfiddle.net/prantikv/dJty6/36/
我有像json这样的数据
$scope.info={
"company1":"this",
"company2":"is",
"company3":"sparta"
}
我正在使用ng-repeat
来打印所有数据,我想单调更改字段。
<input type="text" ng-repeat="item in info" value="{{item}}" monitor-change>
我有一个像这样的monitorChange指令:
.directive('monitorChange', function() {
return {
restrict: 'A',
scope: {changedFlag: '='},
link: function(scope, element, attrs) {
var $el = angular.element(element);
$el.on('keyup', function() {//bind to element
scope.$apply( function() {
scope.changedFlag =true;//on key press value is changed
});
});
}
};
});
尝试更改数据时,收到错误Error: [$compile:nonassign] Expression 'undefined' used with directive 'monitorChange' is non-assignable!
我在我的视图中打印数据:
{{changedFlag }}
代码有什么问题?
答案 0 :(得分:9)
scope: {caretPosition: '='}
,我们需要在标记中传递caret-position="obj.changedFlag"
。ng-repeat
为每个项目创建一个新范围时,最好使用Dot符号表示更改,以反映在控制器的范围内。这是更新的小提琴。 http://jsfiddle.net/dJty6/38/