1

I'm new to angularjs and trying to figure out how to show/hide navbar elements depending on permissions. I'm currently getting the permissions via an 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 Response (console.log):

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

The console logs the correct permissions (set to true) but I can't figure out how to get the compiler to wait until the request finishes to execute the ng-if. I want to use ng-if so the DOM elements are completely removed as opposed to just hidden.

I may be going about this the wrong way, so any light that can be shed would be greatly appreciated.

Josh Davis
  • 157
  • 3
  • 10

1 Answers1

2

You are overwriting the entire scope. Try defining a property on it:

$scope.permissions = data.data
marko
  • 2,841
  • 31
  • 37