我對Angular相當陌生,對於使用ui-router非常新穎,所以我可能會錯過顯而易見的東西。
如果我自己啓動我的results.html頁面,則Web API中的所有內容都將通過控制器正確綁定,並按預期方式顯示。
當我從index.html開始,然後單擊調用$ state.go()的按鈕時,我將導航到results.html頁面,但是沒有任何控制器的數據顯示出來。雖然控制器&服務仍然被調用 - 因爲我把console.log()語句用於驗證我想要的對象是否在$ state.go()之後被返回,它是 - 模板只是沒有註冊它。
這裏是我的我的UI路由器和主控制器代碼:
// script.js
var app = angular.module('BN', ['ui.router']);
// configure our routes
app.config(function ($locationProvider, $stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('');
$stateProvider
.state('default',{
url:'/',
templateURL:'index.html',
controller: 'MainController'
})
.state('results', {
url:'/results',
controller: 'ResultsController',
controllerAs: 'vm',
templateUrl: 'Results/Results.html'
})
.state('instructor', {
url:'/api/instructors/:id',
templateUrl: 'Instructors/Instructor.html'
});
$locationProvider.html5Mode(true);
});
app.controller('MainController', MainController);
function MainController ($state) {
var vm = this;
vm.Submit=function(){
$state.go('results');
};
}
所以Results.html渲染完美的罰款推出它自己的,但是當導航到 - 控制器的調用,但沒有綁定html模板。
其中是ResultsController? – Sajeetharan
它在結果文件中 - 但在我的index.html文件中,我將其包含在此script.js文件之後。 @Sajeetharan –
您是否可以爲此問題創建一個plunker? – Sajeetharan