我有这样的重复:
<div ng-app="myApp" ng-controller="Ctrl">
{{ctrlTest}}<hr/>
<div ng-repeat="elements in filter">
<div>
<li ng-repeat="(key,value) in filter.producers" ng-show="value">
{{key}}<a ng-click="filter.producers.key=false"> X</a>
</li>
</div>
{{filter.producers}}
</div>
angular.module('myApp', [])
.controller('Ctrl', function($scope) {
$scope.ctrlTest = "Filters";
$scope.filter = {"producers": {"Ford":true,"Honda":true,"Ferrari":true}}
});
我正在尝试进行ng-click,在点击链接时将每个标签设置为false,但由于关键值未修复,我无法正确完成(它们应被视为变量)。
到目前为止,我已经按照他的方式尝试过了。
http://jsfiddle.net/Joe82/wjz8270z/5/
提前致谢!
Ps:我无法改变json结构。
答案 0 :(得分:2)
您只需要通过其键访问对象的元素,以确保引用不会丢失&amp;绑定将起作用
<li ng-repeat="(key,value) in filter.producers" ng-show="value">
{{key}}<a ng-click="filter.producers[key]=false"> X</a>
</li>
答案 1 :(得分:1)
您还可以调用函数并设置值 false
<强> HTML 强>
<li ng-repeat="(key,value) in filter.producers" ng-show="value">{{key}} {{value}}<a ng-click="setValue(key)"> X</a>
<强> JS 强>
$scope.setValue = function(key){
$scope.filter.producers[key.toString()] = false;
}