我需要初始化控制器,我在开始视图的另一个视图中使用。为此,我想从该控制器调用我定义的setup()方法。
我不能这样做,因为在用户进入$ stateProvider定义的特定视图之前它是未初始化的。
如何在应用程序启动时加载控制器,以便从该控制器的设置功能初始化?
.controller('StartupCtrl', function($scope,$rootScope) {
vm=this;
var ctrl1=$rootScope.ctrl;
var config={};
// DO SOMETHING and create the config
ctrl1.setup(config);})
.controller('Ctrl1', function($scope,$rootScope) {
vm=this;
$rootScope.ctrl1=this;
vm.state="";
vm.setup(config){
vm.state=config.state
}
});
答案 0 :(得分:0)
请尝试这样:
.controller('StartupCtrl', function($scope,$rootScope) {
vm=this;
var ctrl1=$rootScope.ctrl;
var config={};
// DO SOMETHING and create the config
ctrl1.setup(config);})
.controller('Ctrl1', function($scope,$rootScope, StartupCtrl) {
vm=this;
$rootScope.ctrl1=this;
vm.state="";
vm.setup(config){
vm.state=config.state
}
});
答案 1 :(得分:0)
模块有一个方法run(),可以在应用程序的初始加载时使用。您可以在那里定义您的设置方法,或者您可以在rootscope中设置变量:
//... initialize myModule before this somewhere
myModule.run(function($rootScope) {
$rootScope.config = {}
//...
})
有关doc中模块方法的更多信息(查看运行和配置块部分)https://docs.angularjs.org/guide/module