Ember.js 不呈现嵌套模板
我正在使用余烬应用工具包作为基础,构建一个带有余烬的社交应用程序。索引页显示良好。导航到嵌套模型时,路由将正确激发,控制台中没有错误,但视图不会渲染。以下是相关代码: 控制台Ember.js 不呈现嵌套模板,ember.js,Ember.js,我正在使用余烬应用工具包作为基础,构建一个带有余烬的社交应用程序。索引页显示良好。导航到嵌套模型时,路由将正确激发,控制台中没有错误,但视图不会渲染。以下是相关代码: 控制台 Rendering friend with <(subclass of Ember.View):ember2698> Object {fullName: "view:friend"} Transitioned into 'friends.friend' 路由器.js Router.map(function()
Rendering friend with <(subclass of Ember.View):ember2698> Object {fullName: "view:friend"}
Transitioned into 'friends.friend'
路由器.js
Router.map(function() {
this.resource('friends', function() {
this.resource('friend', { path: '/:friend_id' });
});
});
export default Router;
templates/friends.hbs
<div class="friends-list">
{{#each model}}
{{#link-to 'friend' this }}
{{{display_name}}}
{{/link-to}}
{{/each}}
</div>
<div class="friend">
{{ outlet }}
</div>
{{{#每个模型}
{{{#链接到“朋友”这个}
{{{display_name}}}
{{/链接到}
{{/每个}}
{{outlet}}
模板/friend.hbs
<div>{{ display_name }}</div>
<div>{{ bio }}</div>
{{display\u name}
{{bio}}
当Ember在嵌套路由中查找模板时,它会在以下id下查找:friends/friend
最后,visitoring/posts/new将首先呈现posts模板,然后将posts/new模板呈现到其outlet中
这就是问题所在,但解决方案更复杂一些,因为您使用的是已编译的模板。将文件重命名为friends/friend.hbs或将其添加到名为“friends”的文件夹中可能很简单。您有带出口的应用程序模板吗?(我假设没有,因为你没有提到) 此外,在某个时候,你需要一个朋友路线,否则刷新将不起作用
这是错误的,这只适用于资源下的路由。他的模板名应该是friends and friend。你是对的,@kingpin2k--我的回答只适用于你在该资源下使用的路由,而不是两个资源。我有应用程序模板,但没有friend路由。我添加了路线,效果很好。
<div>{{ display_name }}</div>
<div>{{ bio }}</div>
App.FriendsRoute = Ember.Route.extend({
model: function() {
return [{friend_id:1, color:'red'}, {friend_id:2, color:'yellow'}, {friend_id:3, color:'blue'}];
}
});
App.FriendRoute = Ember.Route.extend({
model: function(params){
return this.modelFor('friends').findProperty('friend_id', parseInt(params.friend_id));
},
serialize: function(model){
return {friend_id: model.friend_id};
}
});