监视数组的子值
Watching subvalues of array
我有一个包含项目的动态array
,可能如下所示:
$scope.items = [
{id: 1, name: 'Ford', checked: false},
{id: 2, name: 'Mercedes', checked: true},
{id: 3, name: 'BMW', checked: false}
];
我想在更改checked
值时做出反应,并知道它在哪个项目上更改了。
我怎样才能做到这一点?
您可以将ng-change
事件注册到绑定的复选框。如果您确实想添加手表,则可以使用深度监视选项。 $scope.$watch('items', fn, true)
.但是,除非绝对需要,否则我不会使用观察程序。
例:-
<label ng-repeat="item in items track by item.id">
<input type="checkbox" ng-model="item.checked" ng-change="carSelected(item)" />{{item.name}}</label>
angular.module('app', []).controller('ctrl', function($scope) {
$scope.items = [{
id: 1,
name: 'Ford',
checked: false
}, {
id: 2,
name: 'Mercedes',
checked: true
}, {
id: 3,
name: 'BMW',
checked: false
}];
$scope.carSelected = function(item) {
//Do something with the selected
console.log(item);
}
$scope.$watch('items', function(){
console.log("Item updated");
}, true)
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<label ng-repeat="item in items track by item.id">
<input type="checkbox" ng-model="item.checked" ng-change="carSelected(item)" />{{item.name}}</label>
<p>
{{items}}
</div>
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在函数中添加数组元素的数值
- 无法通过数组映射绑定
- javascript中的数组出错
- 如何使用 node.js 比较两个 json 数组
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 根据id将json数组组合为一个json数组
- 如何通过数组更新角度子范围
- 为什么AngularJS$scope.watch()在我告诉它监视数组时会停止工作
- 监视数组的子值
- Angular js 监视带有 ng-repeat 的 Select 标签上的对象数组