Мое приложение использует данные Fixture (позже будет порт для Localstorage), и мне нужно реализовать метод «save» в зависимости от щелчка пользователя. Пользователь нажмет это действие, которое сопоставляется с видом и с нем мнение, она передается на контроллер, чтобы сохраняться данные модели, по существу, шаблон имеет:Данные EmberJS, сохраняющие данные
<button {{action 'save' this target='view'}}>Save</button> <!-- note that the 'this' keyword I am sending corresponds to a specific instance of the model that is in a collection, done using an {{#each model}} loop
вид имеет
actions:{
save:function(card){
// perform some UI activity
this.get('controller').send('save',card); // card representing 'this'
}
}
контроллер имеет:
actions:{
save:function(card){
console.log("controller reached"); // does execute
card.save(); // spits out an error
}
}
Все работает отлично, однако метод card.save() вызова не работает в контроллере. Я имею в виду, все, что я пытаюсь сделать, это упорствовать конкретную «карту» мои данные, но он держит плеваться:
Uncaught TypeError: Объект # не имеют метода «Сохранить»
Что я отсутствует здесь?
Боковые ноты:
- Контроллер возвращает коллекцию моделей
- corresponding'view»для контроллера также имеет„изменить“частичное загруженный в него. Итак, когда пользователь выбирает «редактировать» конкретную модель, он не переходит на другой URL-адрес, а загружает форму «редактирования» с тем же адресом.
- Это означает, что модель в этом конкретном контроллере по существу является сборкой, и я хочу сохранить только отредактированную модель .
Что вы используете, данные ember? модель ember? – Kingpin2k
Можете ли вы показать мне класс для этого? App.SomeRecord = Ember.Object .... – Kingpin2k
Конечно, я использую данные Fixture. Вот пример: App.Card.FIXTURES = [ { ID: 1, front: «Какова цель магазина Ember?», назад: «Сохраняет загруженные модели и извлекает модели, которые еще не были загружен ", stack_id: 1 }, ... –