我尝试将我的Angular应用程序从使用ngRoute迁移到uiRoute。除控制器外,一切正常。它们很简单,不像ngRoute那样加载,我不知道为什么。正如我从uiRoute看到它应该像ngRoute一样工作,但事实并非如此。没有异常抛出。我也没有找到类似我的类似配置的任何示例,尽管它非常简单。我回家有人可以告诉我控制器藏在哪里。
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);
答案 0 :(得分:2)
在状态定义中使用views
选项时,ui-router
引擎不会查找templateUrl
&在州一级定义controller
,基本上您需要提供controller
&仅来自templateUrl
定义的namedView
值。在您的情况下,您应该在mainView
定义对象中添加控制器。
<强>代码强>
.config(['$stateProvider', function($stateProvider) {
$stateProvider
.state('home', {
url: '',
views: {
"mainView": {
templateUrl: 'home.html',
controller: 'HomepageCtrl',
controllerAs: 'homepage'
}
},
});
}]);