【问题标题】:Using ui.router how to make one controller the child of another?使用 ui.router 如何使一个控制器成为另一个控制器的子级?
【发布时间】:2016-05-26 21:52:46
【问题描述】:

在 html 中,您可以通过在嵌套的 html 代码中编写一个控制器来使其成为另一个控制器的子级:

<div ng-controller="parentCtrl">
  <div ng-controller="childCtrl">

但是使用ui.router,您只能指定一个状态为另一个状态的子状态,如何使控制器也继承自父状态的控制器?例如:

$stateProvider
    .state('parent', {
        url: '/',
        views: {
            'content': {
                templateUrl : 'static/templates/parent.html',
                controller  : 'ParentController'
            },

        }
    })
    .state('parent.child', {
        url: '/child',
        views: {
            'content@': {
                templateUrl : 'static/templates/child.html',
                controller  : 'ChildController'
            },
        }
    })

在这种情况下ChildController 是否自动继承自ParentController?如果不是,我该如何实现?

【问题讨论】:

    标签: javascript html angularjs angular-ui-router


    【解决方案1】:

    来自ui-routerdocumentation

    仅限视图层次结构的范围继承

    请记住,范围属性仅沿状态链继承 如果您的状态的视图是嵌套的。范围的继承 属性与您的状态的嵌套无关,并且 与您的视图(模板)的嵌套有关的一切。

    所以,答案 - 这取决于。这取决于您如何在状态链中配置/指定视图。

    希望它会有所帮助。

    【讨论】:

    • 那么这是否意味着如果一个ui-view 嵌套在另一个ui-view 中,那么它们的控制器的$scope 会被继承?
    猜你喜欢
    • 2015-12-03
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2015-09-07
    • 2015-08-18
    • 2022-01-23
    相关资源
    最近更新 更多