【发布时间】:2018-07-12 06:43:18
【问题描述】:
我在我的一个项目中使用 UI-Router,我刚刚注意到,当我重新加载子状态时,父控制器也(再次)与子控制器一起运行。父级的作用域由子级继承。这应该像这样工作吗?我可以隔离子范围吗?
我需要父/子关系才能使面包屑起作用。
app.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('parent', {
name: 'parent',
url: '/parent',
templateUrl: 'parent-template.html',
controller: 'parentController',
})
.state('child', {
name: 'child',
parent: 'parent',
url: '/child',
templateUrl: 'child-template.html',
controller: 'childController',
})
.state('orphan', {
name: 'orphan',
url: '/orphan',
templateUrl: 'orphan-template.html',
controller: 'orphanController',
});
// if no route is matching
$urlRouterProvider.otherwise('/parent');
});
<!-- INDEX.HTML -->
<body>
<div ng-app="app">
<main role="main" class="container">
<div ng-app="app">
<ui-view></ui-view>
</div>
</main>
</div>
</body
<!-- PARENT-TEMPLATE.HTML -->
<ui-view>
<div class="container">
parent content
</div>
</ui-view>
<!-- CHILD-TEMPLATE.HTML -->
<ui-view>
<div class="container">
child content
</div>
</ui-view>
<!-- ORPHAN-TEMPLATE.HTML -->
<div class="container">
Orphan Content
</div>
【问题讨论】:
-
我意识到这是 AngularJS 的作用域继承,因为 UI-Router 将子级嵌套在父级中...
标签: javascript angularjs angular-ui-router