【发布时间】:2016-09-01 11:45:40
【问题描述】:
嗨,我将使用 Angular js 和 json 管理用户访问级别。 我有两个数组,一个用于菜单结构,另一个用于访问级别。
当前访问级别:
$scope.current_access_levels ={
"can_home":{"title":"home","value":true},
"can_mail":{"title":"mail","value":false}
};
菜单结构:
$scope.menu = [
{"id":"1","name":"home","aclvl":"can_home"},
{"id":"2","name":"mail","aclvl":"can_mail"}
];
每个菜单字段都有一个“aclvl”,与“current_access_level”数组中的对象名称相匹配。
我要做的是这样的:
<div ng-app="app" ng-controller="appCtrl">
<div ng-repeat="aclvl in current_access_levels">
<label>{{aclvl.title}}</label><input type="checkbox" value="1" ng-model="aclvl.value"/>
</div>
<br />
<br />
<ul>
<li ng-repeat="men in menu">
<input type="checkbox" ng-model="current_access_levels.(men.aclvl).value"/>{{men.aclvl}}
</li>
</ul>
</div>
例如,如果“men”的“aclvl”等于“can_home”,则复选框值应等于“aclvl.can_home.value”。 任何人都知道我应该如何处理这个!? 我添加了一个小提琴来明确我打算做什么。 谢谢
angular.module('app',[])
.controller('appCtrl',function($scope){
$scope.current_access_levels ={"can_home":{"title":"home","value":true},"can_mail":{"title":"mail","value":false}};
$scope.menu = [{"id":"1","name":"home","aclvl":"can_home"},{"id":"2","name":"mail","aclvl":"can_mail"}];
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="appCtrl">
<!-- current access levels -->
<p>current access levels</p>
<div ng-repeat="aclvl in current_access_levels">
<label>{{aclvl.title}}</label><input type="checkbox" value="1" ng-model="aclvl.value"/>
</div>
<!-- current access levels -->
<br />
<div>{{current_access_levels}}</div>
<br />
<hr>
<!-- menu structure just for example -->
<p>menu structure</p>
<ul>
<li ng-repeat="men in menu">
<input type="checkbox" ng-model="current_access_levels.can_home.value"/>{{men.aclvl}}
</li>
</ul>
<!-- menu structure just for example -->
</div>
【问题讨论】:
-
<li ng-repeat="men in menu"> <input type="checkbox" ng-model="current_access_levels.can_home.value"/>{{men.aclvl}} </li>您有两个复选框绑定到同一个模型(它们都引用同一个变量) -
tnx 为您解答,我知道。这是一个展示我将要做什么的例子。我想为每个菜单字段使用“ng-repeat”。菜单的每个字段都有一个“ac_lvl”,应该在“current_access_levels.here.value”中
-
感谢 Shailendra Singh Deol 的回答。这是正确的做法,并且现在可以使用。
标签: javascript jquery angularjs arrays json