2016-06-30 4 views
0

step1.htmlをロードする前にコントローラを実行します。templateUrlをロードする前にコントローラを実行する方法

(function() { 
    "use strict"; 
    var app = angular.module("autoQuote",["ui.router","ngResource"]); 

    app.config(["$stateProvider","$urlRouterProvider", function($stateProvider,$urlRouterProvider){ 
     $urlRouterProvider.otherwise("/"); 

     $stateProvider 
      .state("step1", { 
       url : "/", 
       templateUrl : "easyquote/step1.html", 
       controller: "questionsCtrl", 
      })  


      .state("step2", { 
       url : "/step2", 
       templateUrl : "easyquote/step2.html", 
       controller: "questionsCtrl", 
      }) 
    }] 
    ); 
}()); 

コントローラをautoQuoteCtrl.jsファイルに作成したいと思います。負荷initializeappで関数を実行する

.controller("initializeapp", ["$rootScope",function($rootScope,event, toState, toParams, fromState, fromParams){ 
    $rootScope.$on('$stateChangeStart',function(event, toState, toParams, fromState, fromParams){ 
     console.log('do on page load'+event+'\n'+toParams+'\n'+fromState+'\n'+fromParams); 
    }); 
}]); 

この関数は、ページの読み込み時やユーザーの更新時に実行します。各状態の変更時に実行されます。

+0

これを確認してください:http://stackoverflow.com/q/24357286/1867608 – Kroderia

+0

ありがとう。このコードはどこに書きますか? –

+0

設定後、どこでも$スコープを取得できます。コントローラーAを作成し、 ' 'を指定すると、すぐに実行されます。 – Kroderia

答えて

-1

ドキュメントの準備ができたらコールバックを添付するために、angular.element(document).ready()メソッドを使用できます。コントローラにコールバックを付加するだけで済みます。

(function() { 
"use strict"; 
var app = angular.module("autoQuote",["ui.router","ngResource"]); 
    .controller('autoQuoteCtrl.js', [function() { 
angular.element(document).ready(function() { 

}); 
app.config(["$stateProvider","$urlRouterProvider", function($stateProvider,$urlRouterProvider){ 
    $urlRouterProvider.otherwise("/"); 

    $stateProvider 
     .state("step1", { 
      url : "/", 
      templateUrl : "easyquote/step1.html", 
      controller: "questionsCtrl", 
     })  


     .state("step2", { 
      url : "/step2", 
      templateUrl : "easyquote/step2.html", 
      controller: "questionsCtrl", 
     }) 
}] 
); 
}()); 
関連する問題