嘿,我有一个我创建的简单应用程序。
该应用有以下观点
1. 设置 - 主视图。
2. 个人资料 - 子视图,设置视图的子项。
3. 帐户 - 子视图,设置视图的子项。
我希望应用程序从配置文件页面开始,因此我编写了以下代码:
$urlRouterProvider.otherwise('/profile');
但显然注意到了,我有一个空白屏幕,无法正确查看视图(settings.profile)。
我已将我的代码添加到plunker中,以便为其他开发人员提供更方便和可访问的内容,以帮助我解决问题。 https://plnkr.co/edit/RFP5dUNV876cy8vRDuvL?p=preview
主要主要代码是这样的:
/**
* Module
*
* Description
*/
var app = angular.module('app', ['ui.router'])
app.controller('mainCtrl', ['$scope', function($scope){
$scope.title="Index Page";
}]);
app.controller('ProfileController', ['$scope', function($scope){
$scope.title="Profile Page";
}]);
app.controller('AccountController', ['$scope', function($scope){
$scope.title="Account Page";
}]);
app.controller('SettingsController', ['$scope', function($scope){
$scope.title="Settings Page";
}]);
app.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('settings', {
url: '/settings',
templateUrl: 'settings.html',
controller: 'SettingsController'
})
.state('settings.profile', {
url: '/profile',
templateUrl: 'profile.html',
controller: 'ProfileController'
})
.state('settings.account', {
url: '/account',
templateUrl: 'account.html',
controller: 'AccountController'
});
$urlRouterProvider.otherwise('/profile');
});
答案 0 :(得分:1)
将.otherwise
功能更改为:
$urlRouterProvider.otherwise('/settings/profile');
由于其他路由嵌套在settings
状态,因此您只能通过<ui-view>
中的settings.html
访问嵌套视图。如果两者中都定义了url
参数,则网址也会相互嵌套,因此需要/settings/profile
。