Skip to main content
 首页 » 编程设计

angularjs之等待直到加载了范围变量,然后才能在angular.js的 View 中使用它

2024年09月07日11arxive

我看过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>上。