我正在使用Ember App Kit作为基础,使用Ember构建社交应用程序。索引页面渲染得很好。在导航到嵌套模型时,路由正确触发,控制台中没有错误,但视图不呈现。以下是相关代码:
控制台
Rendering friend with <(subclass of Ember.View):ember2698> Object {fullName: "view:friend"}
Transitioned into 'friends.friend'
路由/ friends.js
var FriendsRoute = Ember.Route.extend({
model: function(params) {
return $.getJSON('JSON_ROUTE').then(function(data){
return data.friends.map(function(friend) {
return friend;
});
});
}
});
export default FriendsRoute;
router.js
Router.map(function() {
this.resource('friends', function() {
this.resource('friend', { path: '/:friend_id' });
});
});
export default Router;
模板/ friends.hbs
<div class="friends-list">
{{#each model}}
{{#link-to 'friend' this }}
{{{display_name}}}
{{/link-to}}
{{/each}}
</div>
<div class="friend">
{{ outlet }}
</div>
模板/ friend.hbs
<div>{{ display_name }}</div>
<div>{{ bio }}</div>
答案 0 :(得分:1)
您是否有带插座的应用程序模板? (我会假设不,因为你没有提到它)
此外,在某些时候你需要一个朋友路线,否则刷新将无效。
http://emberjs.jsbin.com/ElAfAcE/3/edit
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};
}
});
答案 1 :(得分:0)
当Ember在嵌套路线中查找模板时,它会在此ID下查找:朋友/朋友
最后,访问/ posts / new将首先呈现帖子模板,然后将帖子/新模板呈现到其出口。
http://emberjs.com/guides/routing/defining-your-routes/#toc_resources
这就是问题,但解决方案涉及的更多,因为您使用的是编译模板。将文件重命名为friends / friend.hbs或将其添加到名为“friends”的文件夹中可能非常简单。