例如,我有一个对象数组。
$scope.items = [
{id: 1, name: 'one'},
{id: 2, name: 'two'},
{id: 2, name: 'three'}
];
并且在模板中有类似
的内容<div ng-repeat="item in items">
<input type="text" ng-model="item.name" />
</div>
我想在此添加$watch
(用于输入中的曲目更改)
$scope.$watch('item', function(newVal){}, true);
我需要做什么,如果我想要newVal
项{id: 1, name: 'one'}
?
不是对象数组! newVal
中只有一个更改了对象!
我无法在控制器中为数组的每个对象创建变量。
我试过像
这样的东西for (var i = 0; i < $scope.items.length; i++) {
$scope.$watch('items[' + i = ']', function(newVal) {
console.log(newVal);
}, true);
}
但错了。
答案 0 :(得分:2)
您可以尝试类似
的内容for (var i = 0; i < $scope.items.length; i++) {
(function(k){
$scope.$watch(function(){
return $scope.items[k]
}, function(newVal) {
console.log(newVal);
}, true);
})(i);
}
注意:我没有测试过上面的代码;
答案 1 :(得分:1)
试试这个。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div class="main-content" ng-app="MyApp" ng-controller="Main as ctrl">
<div ng-repeat="item in ctrl.items">
<input type="text" ng-model="item.name" />
</div>
</div>
&#13;
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in
&#13;