2015-12-26 102 views
3

我試圖將我的Angular應用從使用ngRoute遷移到uiRoute。一切工作正常,除了控制器。他們很簡單,不像使用ngRoute那樣加載,我不明白爲什麼。正如我從uiRoute看到它應該像ngRoute一樣工作,但它不會。沒有異常拋出。我也沒有找到類似於我的類似配置的例子,雖然它非常簡單。我家有人可以告訴我我的控制器藏在哪裏。angular-ui-router只加載模板但不加載控制器

http://plnkr.co/edit/VGyi3AxgslgpvwBCTkXI?p=preview

,從而爲ngRoute控制器應通過「主頁」訪問,但它看起來像它只是空的:(

;(function(angular) { 
'use strict'; 

angular 
.module('MainRouter', ['ui.router']) 
.config(['$stateProvider', function($stateProvider) { 
    $stateProvider 
    .state('home', { 
     url: '', 
     views: { 
     "mainView": { 
      templateUrl: 'home.html' 
     } 
     }, 
     controller: 'HomepageCtrl', 
     controllerAs: 'homepage' 
    }); 
}]); 
})(angular); 

回答

2

當您使用views選項的狀態定義裏面,然後ui-router引擎不尋找templateUrl & controller定義在州級,基本上你需要提供controller & templateUrl值從僅限定義。在你的情況下,你應該在mainView定義對象中添加控制器。

代碼

.config(['$stateProvider', function($stateProvider) { 
    $stateProvider 
    .state('home', { 
     url: '', 
     views: { 
     "mainView": { 
      templateUrl: 'home.html', 
      controller: 'HomepageCtrl', 
      controllerAs: 'homepage' 
     } 
     }, 
    }); 
}]); 

Demo Plunkr

+0

非常感謝。我以某種方式相信,控制器對於非常狀態而言是全球性的。但我想這就是我該怎麼做:D – DaSch

+0

@DaSch很高興幫助你。謝謝:) –