2016-01-01 41 views
1

我是新来的angularjs,并试图找出如何根据权限显示/隐藏导航栏元素。我目前通过Ajax请求获取权限:Angularjs ng-if with ajax request

mycloudControllers.controller('HeaderController', ['$scope', '$http', 
    function($scope, $http) { 
     $http.get('/api/header').then(function(data) { 
      $scope = data.data; 
      console.log($scope); 
     }); 
    } 
]); 

HTML:

<div ng-if="viewFiles || updateFiles" class="col-xs-12 col-sm-6 col-md-4 col-lg-3"> 

JSON响应(执行console.log):

{viewAccounts: true, viewAccountTypes: true, viewFiles: true, updateFiles: true} 

控制台登录正确的权限(设置为true),但我无法弄清楚如何让编译器等待请求完成后执行ng-if。我想使用ng-if如此,DOM元素被完全删除而不是隐藏。

我可能会这样做是错误的,所以任何可以摆脱的灯将不胜感激。

+1

您正在覆盖整个范围。尝试在其上定义一个属性:$ scope.permissions = data.data – marko

+1

@marko添加你的答案,我会标记它。就是这样!谢谢! –

回答

2

您正在覆盖整个范围。尝试定义一个属性:

$scope.permissions = data.data