Есть ли рекомендуемый подход или шаблон для следующего потока приложений?привязка свойств модели в Ember/Ember-Data
- Пользователь вводит маршрут
- модель маршрута извлекается и представлена пользователю через шаблон.
- Входы шаблона привязаны к свойствам модели, так как пользователь их модифицирует, данные в магазине обновляются «на лету».
- пользователь переходит от маршрута, не задев «Сохранить»
Проблемы, которую я вижу в том, что модель сохранила значение изменено пользователем, хотя они не были сохранялись на внутренний интерфейс.
Мой текущий подход к проблеме это и он чувствует себя очень неуклюжим:
В setupController
крючке, я установил несколько значений по умолчанию свойств из модели с помощью Ember.copy разорвать связывание:
setupController: function(controller, model) {
this._super(controller, model);
var goals = model.get('goals');
controller.set('goalOne', Ember.copy(defaultGoal.get('goalOne')));
controller.set('goalTwo', Ember.copy(defaultGoal.get('goalTwo')));
controller.set('goalThree', Ember.copy(defaultGoal.get('goalThree')));
}
Свяжите свои входы в эти значения вместо:
{{input value=goalOne type='text'}}
При нажатии сохранить, вызовите updateModel()
метод, который устанавливает эти значения обратно к модели и сохраняется на бэкэнде.
updateModel: function() {
var model = this.get('content');
model.set('goalOne', this.get('goalOne');
model.set('goalTwo', this.get('goalTwo');
model.set('goalThree', this.get('goalThree');
}
actions: {
save: function() {
this.updateModel();
this.get('content').save();
}
}
Это похоже на действительно полезный плагин. Похоже, что это должно быть поведение по умолчанию. Я собираюсь попробовать. –