背景:作为我正在处理的项目的一部分,用户(在下面的案例中称为"艺术家")可以选择从中选择一个或多个一系列角色:经理,制片人,代理等等。因此,我需要根据用户选择的角色来显示或隐藏页面的某些部分。
示例:我已尝试使用以下内容在用户选择" Manager"时有条件地显示div。作为他/她的角色之一(当"经理"未被选中时隐藏它),但没有运气。我应该在ng-show指令中使用什么呢?
<div class="manager_section" ng-show="data.artist.roles.name == 'Manager'">Sample Text Here</div>
请注意:如果没有应用ng-show / ng-hide指令,则div显示得很好,所以我没有找到CSS答案或其他任何内容;我只是在寻找ng-show / ng-hide提供的条件方面。我知道角色的数据被拉到页面,因为当我在页面上运行以下内容进行测试时,用户选择的每个角色的名称都准确显示:
<div ng-repeat="role in data.artist.roles">{{ role.name }}</div>
答案 0 :(得分:0)
如果您需要运行任意JavaScript代码,可以使用控制器方法。
例如:
<div class="manager_section" ng-show="isAuthorized('Manager')">Sample Text Here</div>
angular.module('myApp', [])
.controller('AppCtrl',function(){
$scope.isAuthorized = function(role){
for(var i=0;i<$scope.data.artist.roles.length;i++){
if($scope.data.artist.roles[i].name === role) return true;
}
return false;
}
};