AngularJS 嵌套控制器
AngularJS nested controllers
我有一个 AngularJS 应用程序,有 2 条路线/home 和 /about。
我正在使用ng-router,每个路由都有不同的控制器HomeCtrl和AboutCtrl。默认路由为 /home。
问题是,在显示内容之前,我想添加一个预加载器,只是一个简单的div,它将在加载内容时隐藏。
<div class="myApp">
<div class="preloader"></div>
<div ui-view></div>
</div>
我的问题是,我应该在哪个控制器中添加这个?我应该在ng-view之外为这种东西添加一个新控制器吗?
有人可以解释我的最佳实践吗?
我想最好的
方法是在控制器中直接使用标志加载数据指示。因此,依靠带有ng-if指令的这个标志,如果dataLoadedFlag为假,则可以显示带有加载指示器的"div",否则可以使用您的数据显示div。
你有 ng-view,你的视图使用其相应的控制器在那里呈现。
所以你唯一需要的 ng-if
<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: '...',
}
}
});
在 https://github.com/angular-ui/ui-router/wiki/Nested-States-&-Nested-Views 查看更多信息
相关文章:
- 在嵌套递归指令中将参数传递给父控制器方法
- Angularjs 中的嵌套视图,每个视图都有单独的控制器
- 如何在AngularJS页面中嵌套两个控制器
- 如何从指令的控制器调用依赖注入服务的嵌套方法
- 如何在使用具有嵌套视图的 ui 路由器时添加用户控制器
- 如何在 AngularJS 中初始化嵌套控制器
- 嵌套指令 - 无法将 args 从 Angularjs 中的子指令传递给控制器方法
- 未在选择标记下拉列表中选择以隐藏其他输入元素的嵌套控制器
- AngularJS 嵌套控制器
- AngularJS嵌套控制器 - 表单未定义
- 嵌套视图控制器和ng-click-AngularJs
- 在唯一模板中呈现的Symfony多个控制器操作 - 已达到最大嵌套级别
- 帆.js控制器、模型和视图的嵌套文件夹
- AngularJS:调用嵌套控制器中的JSON数组值
- 在angular js中使用ng点击的嵌套控制器
- 动态插入嵌套控制器
- 使用嵌套控制器调用函数
- AngularJS,来自变量的嵌套控制器
- 如何从控制器调用嵌套在promise中的函数
- 嵌套控制器问题