Javascript 在AngularJS ng show指令中计算表达式
背景:作为我正在从事的项目的一部分,以下案例中称为艺术家的用户可以从一系列角色中选择一个或多个角色:经理、制片人、代理等等。因此,我需要根据用户选择的角色显示或隐藏页面的某些部分 示例:当用户选择Manager作为其角色之一时,我尝试使用以下命令有条件地显示一个div,当未选择Manager但运气不佳时,将其隐藏。我应该在ng show指令中使用什么Javascript 在AngularJS ng show指令中计算表达式,javascript,angularjs,angularjs-directive,ng-show,angularjs-ng-show,Javascript,Angularjs,Angularjs Directive,Ng Show,Angularjs Ng Show,背景:作为我正在从事的项目的一部分,以下案例中称为艺术家的用户可以从一系列角色中选择一个或多个角色:经理、制片人、代理等等。因此,我需要根据用户选择的角色显示或隐藏页面的某些部分 示例:当用户选择Manager作为其角色之一时,我尝试使用以下命令有条件地显示一个div,当未选择Manager但运气不佳时,将其隐藏。我应该在ng show指令中使用什么 <div class="manager_section" ng-show="data.artist.roles.name == 'Manag
<div class="manager_section" ng-show="data.artist.roles.name == 'Manager'">Sample Text Here</div>
请注意:div看起来很好,没有应用ng show/ng hide指令,所以我不是在寻找CSS答案或任何东西;我只是在寻找ng show/ng hide提供的条件方面。我知道角色的数据正在被拉到页面上,因为当我在页面上运行以下内容进行测试时,用户选择的每个角色的名称都被准确地显示出来:
<div ng-repeat="role in data.artist.roles">{{ role.name }}</div>
如果需要运行任意JavaScript代码,可以使用controller方法 例如:
<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;
}
};
在ng repeat中是否存在ng show条件?不,这是单独的,抱歉造成混淆。事实上,ng repeat根本不会出现在页面上,我只是暂时使用它来确保角色数据到达页面,确实如此。如果角色是一个数组-你不能对其使用这样的条件-它如何知道要检查哪个索引?如果data.artist.Roles是一个数组,然后,您需要引用数组中具有要比较的name属性的元素,即data.artist.roles[0]。name==“Manager”。