我正在使用angular 1.5和angular-ui-router版本0.2.18
我的app.js文件如下所示:
import angular from 'angular';
import uiRouter from 'angular-ui-router';
import 'angular-ui-bootstrap';
import './components/logIn/logIn';
import './components/home/home';
angular.module('app', ['ui.bootstrap', 'app.components', uiRouter])
.controller('mainCtrl', function() {
})
.config(['$stateProvider', '$urlRouterProvider', '$urlMatcherFactoryProvider', function($stateProvider, $urlRouterProvider, $urlMatcherFactoryProvider){
$urlRouterProvider
.when('/home', {
template: '<home></home>'
})
.otherwise({
redirectTo: '/home'
});
}]);
我收到以下错误:
未捕获错误:[$ injector:modulerr]无法实例化模块应用 由于:错误:when()中的'handler'无效 在$ UrlRouterProvider.when(eval at(http://localhost:8080/app.bundle.js:511:2),:1916:13) 在eval(eval at(http://localhost:8080/app.bundle.js:493:2),:20:22) at Object.invoke(eval at(http://localhost:8080/app.bundle.js:505:2),:4604:19) at runInvokeQueue(eval at(http://localhost:8080/app.bundle.js:505:2),:4497:35) 在eval(eval at(http://localhost:8080/app.bundle.js:505:2),:4506:11) at forEach(eval at(http://localhost:8080/app.bundle.js:505:2),:321:20) 在loadModules(eval at(http://localhost:8080/app.bundle.js:505:2),:4487:5) 在createInjector(eval at(http://localhost:8080/app.bundle.js:505:2),:4409:19) 在doBootstrap(eval at(http://localhost:8080/app.bundle.js:505:2),:1691:20)
我认为这是template
属性。是不是可以像这样设置模板?
答案 0 :(得分:4)
我认为您将urlRouterProvider
与routeProvider
混为一谈。
后者用于定义路线(以及它们之间的模板)。
当URL没有匹配时(或者作为字符串或函数),您可以使用第一个重定向。您使用的otherwise
也属于$routeProvider
。
所以只需切换,你应该好好去:
$routeProvider.when('/home', {
template: '<home></home>'
});
// or $urlRouterProvider.otherwise('/home');
$routeProvider.otherwise({ redirectTo: '/home' });