すべての約束が完了したらUIを表示したい。 私は何らかの手順に移りますが、この前にコードを実行します。 私はここで詰まっています。私のtemplateURlは同期して実行されます。 .runメソッドからすべての実行が完了したら、templateUrlを実行する必要があります。以下Angular JsでtemplateUrlを約束する方法
あなたはUI-ルータの解決にコードを置くことができ、私のapp.js
(function() {
"use strict";
var app = angular.module("autoQuote", ["ui.router", "ngResource"]);
app.config(["$stateProvider", "$urlRouterProvider", function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state("Cars", {
url: "",
templateUrl: "/rc1/renderStep/cars"
})
.state("Drivers", {
url: "/drivers",
templateUrl: "/rc1/renderStep/drivers",
controller: "renderStepCtrl",
})
}])
app.run(["$log", "$rootScope", "$state", "dtoResource", "questionResource", "postDtoFactory", function ($log, $rootScope, $state, dtoResource, questionResource, postDtoFactory) {
$log.info('Post DTO on page load.');
$rootScope.$state = $state;
dtoResource.rc1LoadDTO()
.then(function (data) {
$rootScope.AutoQuote = data;
postDtoFactory.postDto()
.then(function (data) {
questionResource.getQuestions($rootScope.AutoQuote.postAutoQuoteObj.SessionInfo.StateCode)
.then(function (questions) {
console.log('questions', questions);
$rootScope.questions = questions;
//$rootScope.answers = {PC:12345,VehicleYear_1:2017}; // test code
console.log('Obtained questions. Assigned to rootscope');
})
})
})
.then(function() {
console.log('This should be printed after the above methods are done executing');
console.log($rootScope);
})
}])
}());
'resolve'ブロックを使用してください。状態が入力される前にすべての '解決'約束は解決されるでしょう – Phil
ここで何をするか? –