我看过thisthis,但似乎有一种更简单的方法。

在我看来,我有几个通过权限控制的菜单选项-即,并不是每个人都可以看到“仪表盘” View 。因此,在我的 View 菜单选项中,我有以下内容:

<li ng-show="validatePermission('Dashboard')">Dashboard</li>

在我的 Controller 中,我定义了一个validatePermission方法,用于查看当前用户的权限。例如:
  $scope.validatePermission = function(objectName) {
    if $scope.allPermissions......

同样在我的 Controller 中,我通过$ http调用加载这些权限:
  $http.get('permissions/' + userid + '.json').success(function(data) {
    $scope.allPermissions = data;....

问题是,在 View 调用validatePermission之前,不会加载$ scope.allPermissions。如何在 View 呈现之前等待allPermissions加载?

最佳答案

当尚未加载validatedPermission时,让allPermissions函数返回false。这样,只有在加载了ng-show后,才会显示带有allPermissions的元素。

或者,将ng-show="allPermissions"放在封闭的<ul><ol>上。

09-20 21:56