4

使用ui-router,一个州的任何孩子和孙子都可以访问他们的父母和祖父母控制器,对吗?

因此,例如 .state(resources.resource.rates) .rate 状态控制器可以访问资源和资源(它们都有自己的控制器)中的 $scope.objects 对吗?

假设我有一个 html 设置,其中所有内容都是资源中的嵌套视图,带有 ui-view="content2"。但是,我在资源中有另一个页面,称为费率,我想在与资源相同的嵌套视图中打开,但也可以访问资源控制器。

.state('resources.resource.rates', {
    url: '/rates',
    views:{
        "content2":{
            templateUrl: 'templates/rates.html',
            controller: 'CreateRatesCtrl'
        }
    }   
})  

我的视图中的我的 ng-href 链接到 /resources/{{resource.Id}}/rates 但不会在资源 ui 视图中打开费率页面。

所以我尝试将视图设置为 content2@resources 像这样

views:{
        "content2@resources":{
            templateUrl: 'templates/rates.html',
            controller: 'CreateRatesCtrl'
      }
}   

从某种意义上说,这在 html 现在填充资源 ui-view 中的 rates.html 并将 ng-href 填充为 resources/{{resource.Id}}/rates 的意义上是有效的,但不幸的是我只能访问资源范围对象。我有一个资源控制器需要的 resourceId。在这种情况下,设置 content2@resources 是否会限制我对资源控制器的范围访问?如果是这样,我怎样才能做到这一点,以便我也可以访问资源控制器?

4

1 回答 1

5

引用自ui-router wiki :

请记住,如果您的状态视图是嵌套的,则范围属性只会沿状态链继承。范围属性的继承与您的状态的嵌套无关,而与您的视图(模板)的嵌套有关。

这应该足以了解状态和/或视图的嵌套给您和不给您什么。

于 2014-08-12T23:06:18.977 回答