使用嵌套视图和页面加载时的默认嵌套状态更改状态
Changing states with nested views and a default nested state on page load
我有一个带有嵌套 ui 视图的 Angular 应用程序。
在主页上,我有一个子菜单,其中包含两个在主页上呈现的链接。我有显示列表的 Menu1,并希望在页面加载时将该列表显示为默认列表。我还有 Menu2,它在单击后显示不同的列表,但不是默认视图。
我已经得到嵌套的视图来处理一些错误。我只能在加载时更改为一种状态,不能来回更改状态。
单击其中一个嵌套视图后出现 404 错误,另一个 returns 出现 404 错误。
另外,如何将嵌套视图呈现为加载时的默认视图?
就像我想让 menu1 在 ui-view 中默认呈现在加载主页时一样。
app.js
$stateProvider
.state('/', {
url: '/index',
templateUrl: '/index',
controller: 'indexCtrl'
})
.state('/main', {
url: '/main',
templateUrl: 'main',
controller: 'mainCtrl'
})
.state('/main.menu1', {
url: '/menu1',
templateUrl: "menu1",
controller: 'menu1Ctrl'
})
.state('/main.menu2', {
url: '/menu2',
templateUrl: "menu2",
controller: 'menu2Ctrl'
});
控制器
app.controller('menu1Ctrl', ['$scope', function($scope) {
$scope.livenow = [
{ name: 'user1',
status: 'online'
},
{ name: 'user2',
status: 'online'
},
{ name: 'user3',
status: 'online'
},
{ name: 'user4',
status: 'online'
},
{ name: 'user5',
status: 'online'
}
];
}]);
app.controller('menu2Ctrl', ['$scope', function($scope) {
$scope.livenow = [
{ name: 'user6',
status: 'offline'
},
{ name: 'user7',
status: 'online'
},
{ name: 'user8',
status: 'offline'
},
{ name: 'user9',
status: 'online'
},
{ name: 'user10',
status: 'offline'
}
];
}]);
main.html
<div class="section2 col-md-12">
<div class="row">
<div class="section2nav col-md-offset-4 col-md-4">
<a ui-sref='/main.menu1'> menu1 </a> | <a ui-sref="/main.menu2"> menu2 </a>
<ui-view></ui-view>
</div>
</div>
您想删除每个州的斜线。例如,
.state('/main', {
应该是 .state('main', {
我有一个带有嵌套 ui 视图的 Angular 应用程序。 在主页上,我有一个子菜单,其中包含两个在主页上呈现的链接。我有显示列表的 Menu1,并希望在页面加载时将该列表显示为默认列表。我还有 Menu2,它在单击后显示不同的列表,但不是默认视图。
我已经得到嵌套的视图来处理一些错误。我只能在加载时更改为一种状态,不能来回更改状态。 单击其中一个嵌套视图后出现 404 错误,另一个 returns 出现 404 错误。
另外,如何将嵌套视图呈现为加载时的默认视图? 就像我想让 menu1 在 ui-view 中默认呈现在加载主页时一样。
app.js
$stateProvider
.state('/', {
url: '/index',
templateUrl: '/index',
controller: 'indexCtrl'
})
.state('/main', {
url: '/main',
templateUrl: 'main',
controller: 'mainCtrl'
})
.state('/main.menu1', {
url: '/menu1',
templateUrl: "menu1",
controller: 'menu1Ctrl'
})
.state('/main.menu2', {
url: '/menu2',
templateUrl: "menu2",
controller: 'menu2Ctrl'
});
控制器
app.controller('menu1Ctrl', ['$scope', function($scope) {
$scope.livenow = [
{ name: 'user1',
status: 'online'
},
{ name: 'user2',
status: 'online'
},
{ name: 'user3',
status: 'online'
},
{ name: 'user4',
status: 'online'
},
{ name: 'user5',
status: 'online'
}
];
}]);
app.controller('menu2Ctrl', ['$scope', function($scope) {
$scope.livenow = [
{ name: 'user6',
status: 'offline'
},
{ name: 'user7',
status: 'online'
},
{ name: 'user8',
status: 'offline'
},
{ name: 'user9',
status: 'online'
},
{ name: 'user10',
status: 'offline'
}
];
}]);
main.html
<div class="section2 col-md-12">
<div class="row">
<div class="section2nav col-md-offset-4 col-md-4">
<a ui-sref='/main.menu1'> menu1 </a> | <a ui-sref="/main.menu2"> menu2 </a>
<ui-view></ui-view>
</div>
</div>
您想删除每个州的斜线。例如,
.state('/main', {
应该是 .state('main', {