Angularjs angular.js的复杂切换行为
情况: 我使用angular.js作为前端(新手),使用symfony2(php)作为后端。我查询用户和组的列表。所以html可能是这样的Angularjs angular.js的复杂切换行为,angularjs,Angularjs,情况: 我使用angular.js作为前端(新手),使用symfony2(php)作为后端。我查询用户和组的列表。所以html可能是这样的 <ul class="user-list"> <li ng-repeat="user in users"> <a ng:click="select(user)"> {{user.first_name}} {{user.last_name}} </a&
<ul class="user-list">
<li ng-repeat="user in users">
<a ng:click="select(user)">
{{user.first_name}} {{user.last_name}}
</a>
</li>
</ul>
<div class="user-was-selected" ng-show="selectedUser != null">
<ul class="dropdown-menu">
<li ng-repeat="group in groups"><a>{{ group.name }}</a></li>
</ul>
</div>
-
{{user.first{u name}{{user.last{u name}}
- {{group.name}
当从列表中选择用户时,将显示另一个视图,其中显示一个充满组的下拉列表。这是所有可用的组。因此,列表查询不依赖于用户
但是,用户可以是组的成员。所以我需要在li元素上设置一个类,比如“in group”
在symfony2中,这很容易,因为它的模板引擎“twig”具有类似user.hasGroup的方法来检查用户是否在组中。我可以在细枝模板中正确执行此操作
我的问题是,我必须为此调用RESTAPI吗?这意味着我必须对每个用户的每个组进行RESTAPI组检查。这有意义吗?或者你看到了另一种解决方案吗
除此之外,从下拉列表中单击一个组将从单击的组中删除/添加(切换)用户。您将把
ng类
添加到您的li
<ul class="user-list">
<li ng-repeat="user in users">
<a ng:click="select(user)">
{{user.first_name}} {{user.last_name}}
</a>
</li>
</ul>
<div class="user-was-selected" ng-show="selectedUser != null">
<ul class="dropdown-menu">
<li ng-class="{in-group: selectedUser.inGroup}" ng-repeat="group in groups"><a>{{ group.name }}</a></li>
</ul>
</div>
可以使用ng类有条件地应用类。条件类似于“selectedUser.hasGroup”。如果您没有该方法,请将其添加到您的用户资源原型中。
angular.module('myApp').factory('User', ['$resource', function($resource) {
var User = $resource(...);
...
User.prototype.inGroup = function(group) {
//determine if user is in group
//'this' (selectedUser) and 'group' are at your disposal
//return true if there's a match
};
...
return User;
}]);