2016-06-30 2 views
0

Ich möchte einen Controller ausführen, bevor ich step1.html lade.Wie führe ich einen Controller vor dem Laden von templateUrl aus?

(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", 
      }) 
    }] 
    ); 
}()); 

Ich möchte Controller in AutoQuoteCtrl.js Datei erstellen. und führt funtion auf Last 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); 
    }); 
}]); 

Diese Funktion ich beim Laden der Seite ausgeführt werden soll, oder wenn Benutzer Seite aktualisieren. aber es wird bei jeder Zustandsänderung ausgeführt.

+0

Überprüfen Sie dies: http://StackOverflow.com/Q/24357286/1867608 – Kroderia

+0

Vielen Dank. Wo soll ich diesen Code schreiben? –

+0

Nach der Konfiguration, überall können Sie den $ Bereich erhalten. Sie können einen Controller A schreiben und ' 'haben, so dass er sofort ausgeführt wird. – Kroderia

Antwort

-1

Wir können die angle.element (document) .ready() -Methode verwenden, um Rückrufe anzuhängen, wenn das Dokument fertig ist. Wir können den Rückruf einfach im Controller anhängen.

(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", 
     }) 
}] 
); 
}()); 
Verwandte Themen