Javascript AngularJS嵌套控制器

Javascript AngularJS嵌套控制器,javascript,angularjs,Javascript,Angularjs,我有一个AngularJS应用程序,有两条路线/home和/about 我使用的是ng路由器,每条路由都有不同的控制器HomeCtrl和AboutCtrl。默认路由为/home 问题是,在显示内容之前,我想添加一个预加载程序,只是一个简单的div,在加载内容时它会隐藏 <div class="myApp"> <div class="preloader"></div> <div ui-view></div>

我有一个AngularJS应用程序,有两条路线/home/about

我使用的是ng路由器,每条路由都有不同的控制器HomeCtrl和AboutCtrl。默认路由为/home

问题是,在显示内容之前,我想添加一个预加载程序,只是一个简单的div,在加载内容时它会隐藏

  <div class="myApp">

    <div class="preloader"></div>

    <div ui-view></div>    

  </div>

我的问题是,我应该在哪个控制器中添加这个? 我应该在ng视图之外为这类东西添加一个新的控制器吗


有人能给我解释一下最佳实践吗?

我想最好的方法是在控制器中使用数据加载指示directle的标志。因此,依赖于带有ng if指令的该标志,如果dataLoadedFlag为false,则可以使用加载指示器显示'div',否则,使用数据显示div。

我认为最好的方法是在控制器中使用用于数据加载指示directle的标志。因此,依赖于带有ng if指令的该标志,如果dataLoadedFlag为false,则可以使用加载指示器显示'div',如果dataLoadedFlag为false,则使用数据显示div。

您有ng视图,并且您的视图通过相应的控制器呈现在那里

所以你唯一需要的就是

<ng-view>
  <div ng-if="!$scope.contentIsReady">
         content loading
  </div>
  <div ng-if="$scope.contentIsReady">
          content here
  </div>
</ng-view>

内容加载
满足于此

您有一个ng视图,您的视图通过相应的控制器呈现在那里

所以你唯一需要的就是

<ng-view>
  <div ng-if="!$scope.contentIsReady">
         content loading
  </div>
  <div ng-if="$scope.contentIsReady">
          content here
  </div>
</ng-view>

内容加载
满足于此

@Hiero当然,在您的情况下,您必须创建新的控制器

也可以使用嵌套视图。大概是这样的:

$stateProvider.state('home', {
        url: '/home',
        views: {
            "main": {
                templateUrl: '....',
                controller: '....'
            },
            'view-with-data@home': {
                templateUrl: '...',
                controller: '...',
            }
        }
    });

更多信息请参见

@Hiero当然,您必须创建新的控制器

也可以使用嵌套视图。大概是这样的:

$stateProvider.state('home', {
        url: '/home',
        views: {
            "main": {
                templateUrl: '....',
                controller: '....'
            },
            'view-with-data@home': {
                templateUrl: '...',
                controller: '...',
            }
        }
    });

更多信息,请参见

但预加载程序div位于ui视图外部,类似于此,因此请将其放在ng viewhm侧,您确定其最佳做法吗?但预加载程序div位于ui视图外部,类似于此,因此请将其放在ng viewhm侧,你确定它的最佳实践吗?但问题是预加载它的外部ui视图,但问题是预加载它的外部ui视图可以在一个指令中以多种不同的方式被触发在一个指令中可以以多种不同的方式被触发