我有一些定义如下的状态:
$stateProvider.state('main.product', {
url: '',
abstact: true,
views: {
'': {
templateUrl: 'product/index.html'
},
'sidebar': {
templateUrl: 'product/sidebar.html'
}
}
});
$stateProvider.state('main.product.overview', {
url: '/products/:product_id',
templateUrl: 'product/overview.html',
controller: 'ProductOverviewController'
});
在我的“主要包装”控制器中,我想访问抽象状态views
,如下所示:
angular.module('myApp').controller('MainController', function($rootScope, $scope, $state, $stateParams) {
console.log($state.$current.views.sidebar.templateUrl);
});
如果我处于父状态main.product
,则此方法有效。但是,正如预期的那样,这将为子状态main.product.overview
返回undefined。
如何从子州访问views
?
我知道我可以使用data object,例如:
$stateProvider.state('main.product', {
url: '',
abstact: true,
views: {
'': {
templateUrl: 'product/index.html'
},
'sidebar': {
templateUrl: 'product/sidebar.html'
}
},
data: {
'sidebar': {
templateUrl: 'product/sidebar.html'
}
}
});
然后像这样访问:
console.log($state.current.data.sidebar.templateUrl)
但这不干净,templateUrl
会重复。
是否可以从子状态访问views
?
答案 0 :(得分:0)
您可以使用get
方法
$state.get('main.product').views.sidebar.templateUrl