2016-01-01 38 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