Привет, я собираюсь управлять уровнями доступа пользователей с помощью угловых 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>
например, если "aclvl" "men" равен "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>
Вы можете использовать []
с current_access_levels
как будто -
<li ng-repeat="men in menu">
<input type="checkbox" ng-model="current_access_levels[men.aclvl].value"/>{{men.aclvl}}
</li>
<li ng-repeat="men in menu"> <input type="checkbox" ng-model="current_access_levels.can_home.value"/>{{men.aclvl}} </li>
У вас есть два флажка, связанных с одна и та же модель (обе они ссылаются на одну и ту же переменную)