【发布时间】:2015-03-30 08:15:56
【问题描述】:
我有一个用户布局文件,它是任何用户页面的模板:
<div class="user-wrapper">
<div ui-view="menu"></div>
<div ui-view="content"></div>
</div>
根据状态,我希望菜单有所不同。如:
.state('user', {
url: '/user',
templateUrl: 'partials/user.html',
controller: 'userController',
})
.state('user.one', {
url: '/one',
controller: 'oneController',
views: {
"menu": { templateUrl: "partials/client-menu.html" },
"content": { templateUrl: "partials/one.html" }
},
});
.state('user.two', {
url: '/two',
controller: 'twoController',
views: {
"menu": { templateUrl: "partials/client-menu.html" },
"content": { templateUrl: "partials/two.html" }
},
});
.state('user.three', {
url: '/three',
controller: 'threeController',
views: {
"menu": { templateUrl: "partials/admin-menu.html" },
"content": { templateUrl: "partials/three.html" }
},
});
现在您可以看到“一”和“二”都使用相同的菜单,但“三”使用不同的菜单。这一切都很好,但有没有办法避免在“一”和“二”上重复菜单。
比如创建一个使用“user-menu.html”的“user.client”状态,那么“one”将改为“user.client.one”,并且只需要指定内容。
我认为主要问题是
<div ui-view="content"></div>
是关于“user.client.one”的祖父,那它怎么指定内容呢?
【问题讨论】:
标签: angularjs angular-ui angular-ui-router