我正在开发一个极其模块化的应用程序,一些第三方模块必须能够在不破坏主要功能的情况下插入或移除核心。在我的情况下,我需要一个'插件'模块,以便能够在核心模块已经定义的状态下注册视图。像这样:
angular
.module('myApp', [])
.config(function($stateProvider) {
$stateProvider.state('myState', {
views: {
mainView: { templateUrl: 'mainTpl.html' }
}
});
})
;
angular
.module('myPlugin', [])
.config(function($stateProvider) {
$stateProvider.extendState('myState', {
views: {
otherView: { templateUrl: 'otherTpl.html' }
}
});
})
;
我试图通过在运行块中扩展给定状态来实现这一点,但是由于状态已经注册,它没有效果。
angular
.module('myPlugin', [])
.run(function($state) {
// this does not work...
angular.merge($state.get('myState'), {
views: {
otherView: { templateUrl: 'otherTpl.html' }
}
});
})
;
THX
答案 0 :(得分:0)
不确定这是否是您所需要的,但您可以嵌套这样的状态:
$stateProvider.extendState('myState.childState' , {
这样您就可以继承在父状态中定义的属性,例如params
。
请参阅documentation。