我正在尝试在我的项目中使用ui-router。
核心模块:
var core = angular.module('muhamo.core', ['angular-loading-bar', 'anguFixedHeaderTable', 'ui.router']);
追踪模块:
var app = angular.module(TRACKING_MODULE_NAME, ['muhamo.core']);
app.config(Configure);
Configure.$inject = ['$stateProvider', '$urlRouterProvider'];
function Configure($stateProvider, $urlRouterProvider) {
$stateProvider.state('contacts', {
templateUrl: '/static/partials/employee/employee-edit',
controller: function () {
this.title = 'My Contacts';
},
controllerAs: 'contact'
});
$urlRouterProvider.otherwise("/contacts");
console.log($stateProvider);
}
和html定义:
<div ui-view></div>
如果我点击ui-sref链接,它可以正常工作。但在页面加载时,它不会加载默认视图“/ contacts”。我在这里错过了什么吗?
更新
添加缺少的“url”属性后,它可以正常工作。但是现在我还有另一个问题,如果我扩展我的实现:
function Configure($stateProvider, $urlRouterProvider) {
$stateProvider.state('employees', {
abstract: true,
url: "/employees"
/* Various other settings common to both child states */
}).state('employees.list', {
url: "", // Note the empty URL
templateUrl: '/static/partials/employee/employee-list'
});
$urlRouterProvider.otherwise("/employees");
console.log($stateProvider);
}
也有更多状态,ui-view不呈现。
答案 0 :(得分:1)
是。您需要将state.url设置为&#39; / contacts&#39;
$stateProvider.state('contacts', {
url: '/contacts',
templateUrl: '/static/partials/employee/employee-edit',
controller: function () {
this.title = 'My Contacts';
},
controllerAs: 'contact'
});
答案 1 :(得分:1)
您似乎忘记设置url
参数,例如:
$stateProvider.state('contacts', {
url: "/contacts",
...
}
答案 2 :(得分:1)
您的实施中有两个可疑的东西。你输出一个空网址,你的默认路由是抽象的。请尝试以下更改。
function Configure($stateProvider, $urlRouterProvider) {
$stateProvider.state('employees', {
abstract: true,
url: "/employees"
/* Various other settings common to both child states */
}).state('employees.list', {
url: "/list", // Note the empty URL
templateUrl: '/static/partials/employee/employee-list'
});
$urlRouterProvider.otherwise("/employees/list");
console.log($stateProvider);
干杯