В моем приложении у меня есть следующие rawNodes
свойство, которое я использую в качестве приложения в масштабах всей кэш:Как вручную обновить ArrayController
var App = Ember.Application.createWithMixins({
...
/**
The rawNodes property is a nodes deposit to be used
to populate combo boxes etc.
**/
rawNodes: null,
getNodes: function() {
if (!this.rawNodes) {
this.rawNodes = this.Node.find();
}
},
...
});
В некоторых из моих контроллеров я модифицирующих данные, которые также должны быть обновлен в этом общем кэше. Я хотел бы реализовать пару функций, обновить данный узел и удалить данный узел. Что-то вроде:
updateNode: function(node_id, node) {
this.rawNodes.update(node_id, node);
},
deleteNode: function(node_id) {
this.rawNodes.delete(node_id);
}
Но я не знаю, как работать с ArrayController, даже если эти операции вообще возможно. Я не вижу примеров такого рода процедур в ArrayController documentation. Может ли кто-нибудь предложить пример или указать мне в правильном направлении?
Это имеет смысл, но все же: как реализовать «updateNode» и «deleteNode»? – dangonfast
Это хороший момент. Я думаю, что эти два метода должны идти в «NodeController» (ответ обновлен) для действий на одном ресурсе. С точки зрения фактического обновления и удаления, это зависит от модели. Например, если вы используете 'ember-data', вы хотите изменить свойство, а затем вызвать' node.store.commit() 'или' node.deleteRecord() '. Если ваша модель представляет собой простой «Ember.Object», вам придется самостоятельно реализовать методы, используя '$ .ajax' или все, что вам нужно использовать для вашего приложения. – veidt