0

我需要初始化控制器,我在开始视图的另一个视图中使用它。为此,我想从该控制器调用我定义的 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
    }
});
4

2 回答 2

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
    }
});
于 2015-12-11T13:56:50.747 回答
0

模块有一个方法 run(),可以在应用程序的初始加载时使用。您可以在那里定义您的设置方法,或者您可以只设置根范围的变量:

//... initialize myModule before this somewhere
myModule.run(function($rootScope) {
    $rootScope.config = {}
    //...
})

有关文档中模块方法的更多信息(查看运行和配置块部分)https://docs.angularjs.org/guide/module

于 2015-12-11T14:42:55.457 回答