路线:
App.Router.map(function()
{
this.resource("login", { path: "/login"});
this.resource("contacts", { path: "/contacts"}, function ()
{
this.resource("contact", { path: ":contact_id"}, function()
{
this.route("new");
this.route("edit");
});
});
});
App.ContactsIndexRoute = App.AuthenticatedRoute.extend(
{
model: function()
{
return App.Contact.find();
}
});
App.ContactIndexRoute = App.AuthenticatedRoute.extend(
{
model: function()
{
return this.modelFor("contact");
},
setupController: function(controller, model)
{
controller.set("content", model);
}
});
控制器:
App.ContactsIndexController = Ember.ArrayController.extend(
{
setProperties: ['full_name']
});
App.ContactEditControllerr = Ember.ObjectController.extend(
{
});
App.ContactIndexController = Ember.ObjectController.extend(
{
});
当我转到#/ contacts时,我会从服务器获取完整的联系人列表。如果我转到#/ contacts / 1,我将获得所有数据,但如果我刷新该页面,数据就会消失,而我只剩下裸HTML。问题是如何在嵌套资源中保留模型,以便在页面刷新后存在?
答案 0 :(得分:1)
我已经模拟了问题并且您的代码正常运行。即使使用其他适配器。
http://jsbin.com/ucanam/669#/contacts/1
我认为你的问题是你回来的json。必须符合以下条件:
Several resources
GET / contacts
状态:200
{ 联系人:[ {id:1,full_name:'Tom dale'}, {id:2,full_name:'Yehuda Katz'} ] }
Unique resource
GET / contacts / 1
状态:200
{ 联系: { id:1,full_name:'Tom dale' } }
答案 1 :(得分:0)
可能是查询单个记录的数据源时出现问题。尝试在基本路由中加载联系人,以便在联系人和联系人上调用它。
App.ContactsRoute = App.AuthenticatedRoute.extend({
model: function() {
return App.Contact.find();
}
});