N-click 改变键值对

Ng-click changing key,value pair

我有一个像这样的 ng-repeat:

<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,当单击 link 时会将每个标签设置为 false,但由于键值不固定(它们应该被视为变量)。

到目前为止,我已经按照他的方式进行了尝试。

http://jsfiddle.net/Joe82/wjz8270z/5/

提前致谢!

Ps: 我无法更改 json 结构。

您只需要通过其键访问对象的元素,以确保引用不会丢失并且绑定有效

<li ng-repeat="(key,value) in filter.producers" ng-show="value">
   {{key}}<a ng-click="filter.producers[key]=false"> X</a>
</li>

Forked Fiddle

您还调用了一个函数并设置了值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;
}

看到这个linkhttp://jsfiddle.net/wjz8270z/8/