2013-08-12 30 views
2

Маршрут:Данные отсутствуют после обновления страницы

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

Когда я иду на #/контакты я получить полный список контактов с сервера. Если я перейду к #/контактам/1, я получу все данные, но если обновить эту страницу, данные исчезнут, и я останусь с голым HTML. Вопрос в том, как сохранить модель в вложенном ресурсе, чтобы она появилась после обновления страницы?

+0

Для меня работает http://jsbin.com/ ucanam/666/редактировать. Используете ли вы последнюю версию? –

+0

Да, я использую последнюю версию. С помощью FIxtures он отлично работает с адаптером REST. –

ответ

1

Я смоделировал проблему, и ваш код работает. Даже с адаптером для отдыха.

http://jsbin.com/ucanam/669#/contacts/1

Я думаю, что ваша проблема возвращенное ваше JSON. Он должен соответствовать следующим образом:

Several resources

GET/контакты
Статус: 200

{ контакты: [ {ID: 1, full_name: 'Том дола'}, {идентификатор : 2, full_name: 'Иегуда Кац'} ] }

Unique resource

GET/контакты/1
Статус: 200

{ контакт: { ID: 1, full_name: 'Том дола' }}

+0

Спасибо за ответ. Я сделал некоторые изменения и реорганизовал свой код, и теперь все в порядке :) –

0

Возможно, существует некоторая проблема с запросом на источник данных для отдельной записи. Попробуйте загрузить контакты на базовом маршруте, чтобы он вызывался как на контакты, так и на контакты.

App.ContactsRoute = App.AuthenticatedRoute.extend({ 
    model: function() { 
    return App.Contact.find(); 
    } 
}); 
+0

Я, очевидно, что-то делаю неправильно, потому что после обновления #/contacts/1 я получаю вызов REST/контакты/1, а сервер отвечает, но моя страница пуста. Так, я делаю это неправильно где-то в шаблоне, может быть? –