我想知道条件块是否可以在依赖于您当前所在的资源/路由的模板中使用。当访问使用相同模板的嵌套路由时,这将非常有用。
更多详情
我有一个名为" user"并且嵌套在该资源中的是名为" edit":
的路由// Read single user
this.resource('user', {path:'/user/:UserID'}, function(){
// Update / Delete existing user
this.route('edit');
});
我知道我可以在"用户"中使用{{outlet}}模板,它将呈现" user / edit"模板,但我想在用户模板中使用条件语句。
例如:
{{if route is user}}
<h2>View User</h2>
{{/if}}
{{if route is user/edit}}
<h2>Edit User</h2>
{{/if}}
这可能吗?
谢谢, 汤姆
答案 0 :(得分:1)
这是可能的,但不推荐使用,因为使用较少的代码可以获得相同的结果,并且在用户模板中使用{{outlet}}可以减少错误。
如果你仍然坚持使用你建议的反模式,我会做的是使用UserEditRoute上的activate / deactivate钩子来设置/取消设置userController实例上的“isInEditMode”属性,并使用模板条件该财产。
我不想提供示例代码,因为这是一种不好的做法,我不希望任何人使用它。
对不起。
答案 1 :(得分:0)
Meori是对的。如果您嵌套路线,还应通过{{outlet}}
嵌套模板。如果要渲染不同的模板,则不应嵌套路径。
所以也许你想要用这样的东西:
App.Router.map(function() {
this.resource('user', { path: '/user/:UserID' });
this.route('user.edit', { path: '/user/:UserID/edit' });
});
然后您可以使用不同的模板来显示和编辑用户。