使用Ember.js无法正确渲染把手模板
我有一个简单的Ember.js应用程序,它使用把手模板。我的main.js文件中列出了一些用户路线:使用Ember.js无法正确渲染把手模板,ember.js,handlebars.js,Ember.js,Handlebars.js,我有一个简单的Ember.js应用程序,它使用把手模板。我的main.js文件中列出了一些用户路线: App.Router.map(function() { this.resource('users', function() { this.resource('user', { path: '/:user_id' }, function() { this.route('edit'); }); this.route('create'); }); });
App.Router.map(function() {
this.resource('users', function() {
this.resource('user', { path: '/:user_id' }, function() {
this.route('edit');
});
this.route('create');
});
});
App.UsersRoute = Ember.Route.extend({
model: function() {
return this.store.find('user');
}
});
App.UsersController = Ember.ArrayController.extend({
sortProperties: ['first_name']
});
App.UserRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('user', params.user_id);
}
});
App.UserController = Ember.ObjectController.extend({});
为此,我有以下两个模板(在同一个文件中):
{{{#链接到'index'}主页{{/链接到}
活跃用户
{{{#各}
- {{{#链接到'user'这个class='label label primary'}{{{first{u name}}{{/link to}}
{{/每个}}
{{{#链接到'index'}主页{{/链接到}
用户:{{first_name}
试验
但是,“用户”模板不会加载。如果我访问“/users/4”,它只会再次加载“users”模板。知道我做错了什么吗?谢谢。您需要向
用户
模板添加{outlet}
,以便它知道子例程(在您的情况下是用户
)应该呈现在哪里。您需要向用户
模板添加{outlet}
,以便它知道子例程(在您的情况下是用户
)应该呈现。您有这样的模板层次结构
application
-index (generated)
-users
-index (generated)
-user
-index (generated)
-edit
-create
您必须告诉父模板中的占位符{{outlet}},子模板在何处呈现
假设我们有两个子模板,第一个子模板在{{outlet}}给定的区域中呈现,那么导航到第二个子模板将替换第一个子模板。但将保留父模板内容,仅更改子模板的区域
看一看
您有这样的模板层次结构
application
-index (generated)
-users
-index (generated)
-user
-index (generated)
-edit
-create
您必须告诉父模板中的占位符{{outlet}},子模板在何处呈现
假设我们有两个子模板,第一个子模板在{{outlet}}给定的区域中呈现,那么导航到第二个子模板将替换第一个子模板。但将保留父模板内容,仅更改子模板的区域
看一看
如果我希望模板完全不同,那该怎么办?如果我添加一个{outlet},除了“user”中的内容之外,它不会在“users”中呈现所有内容吗?谢谢Ryan-直到Susai也回答了,我才完全理解它,但你是对的,我需要一个{outlet}。如果我希望模板完全不同呢?如果我添加一个{outlet},除了“user”中的内容之外,它不会在“users”中呈现所有内容吗?谢谢Ryan-直到Susai也回答了,我才完全理解它,但你是对的,我需要一个{outlet}。好的,这样我就可以创建一个“users”模板,其中只有一个{outlet},然后是一个“users/index”模板,在“/users”和一个“user”处呈现将在“users/:user_id”处呈现的模板?是的,刚刚尝试过,效果很好。谢谢你的帮助,现在你已经解释过了,它变得更有意义了。好吧,我可以创建一个“用户”模板,只需要一个{outlet},然后是一个“用户/索引”模板,在“/users”处呈现,还有一个“用户”模板,在“users/:user_id”处呈现?是的,刚刚尝试过,它就工作了。谢谢你的帮助,既然你已经解释清楚了,那就更有意义了。