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}; 
  }
});