页面刷新后数据丢失

时间:2013-08-12 22:33:23

标签: javascript ember.js

路线:

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。问题是如何在嵌套资源中保留模型,以便在页面刷新后存在?

2 个答案:

答案 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();
  }
});