从嵌套状态访问不同的父控制器
Accessing different parent controller from nested states
我有一个app.js
:中定义的状态和嵌套状态
function config($stateProvider, $urlRouterProvider, $httpProvider, $locationProvider) {
$httpProvider.interceptors.push('authInterceptor');
$stateProvider.state("feed", { //parent state
url: "/feed",
controller: "FeedCtrl as feed",
templateUrl: "/static/templates/feed.html"
})
.state("feed.post", { //nested state
url: "/post/:id",
controller: "PostCtrl",
templateUrl: "/static/templates/post.html"
})
}
两种状态的控制器不同。
此外,嵌套状态的模板没有嵌套在父状态的模板中。模板CCD_ 2和CCD_。
在app.js中定义的嵌套状态是否足以强制控制器之间的父子关系,或者控制器和模板是否也需要嵌套?
如果是,那么我如何从子控制器访问父控制器的作用域?
需要在app.js中定义的嵌套状态,但不足以强制执行父子关系。
控制器模板也需要嵌套。
可以使用下面的四个选项中的任何一个嵌套状态
*使用"点表示法"。例如.state('contacts.list',{})。
*使用ui-router.stateHelper从嵌套的状态树构建状态。
*使用以父名称作为字符串的父属性。例如:parent:"contacts"
*将父属性与父对象一起使用。例如parent:contacts(其中"contacts"是stateObject)
您可以在这里的文档中查找更多详细信息
您可以按任何顺序和跨模块注册状态。您可以在父状态存在之前注册子状态。它会将它们排队,一旦注册了父状态,就会注册子状态。
父状态必须存在,并且任何两个状态都不能具有相同的名称。
子状态将把它们的模板加载到其父状态的ui视图中。
请参考文档链接了解更多详细信息。
相关文章:
- 在嵌套递归指令中将参数传递给父控制器方法
- Angularjs 中的嵌套视图,每个视图都有单独的控制器
- 如何在AngularJS页面中嵌套两个控制器
- 如何从指令的控制器调用依赖注入服务的嵌套方法
- 如何在使用具有嵌套视图的 ui 路由器时添加用户控制器
- 如何在 AngularJS 中初始化嵌套控制器
- 嵌套指令 - 无法将 args 从 Angularjs 中的子指令传递给控制器方法
- 未在选择标记下拉列表中选择以隐藏其他输入元素的嵌套控制器
- AngularJS 嵌套控制器
- AngularJS嵌套控制器 - 表单未定义
- 嵌套视图控制器和ng-click-AngularJs
- 在唯一模板中呈现的Symfony多个控制器操作 - 已达到最大嵌套级别
- 帆.js控制器、模型和视图的嵌套文件夹
- AngularJS:调用嵌套控制器中的JSON数组值
- 在angular js中使用ng点击的嵌套控制器
- 动态插入嵌套控制器
- 使用嵌套控制器调用函数
- AngularJS,来自变量的嵌套控制器
- 如何从控制器调用嵌套在promise中的函数
- 嵌套控制器问题