Ember Route
,其中包含az EmberFire model
。
App.NewRoute = Ember.Route.extend({
model: function() {
return EmberFire.Object.create({
ref: window.ref
});
},
setupController: function(controller, model) {
controller.set('model', model);
})
之后,例如我在控制器中:
App.NewController = Ember.Controller.extend({
actions: {
save: function() {
this.get('model').set('questions', Ember.A([]));
this.get('model').get('questions').pushObject(Ember.Object.create({title: 'foo'}));
this.get('model').get('questions').get('lastObject').set('title', 'bar');
this.get('model').set('title', 'foobar');
}
}
});
当在火警基地上进行仅调用标题更改的保存操作时。
有人可以解释我怎样才能改变阵列?
答案 0 :(得分:0)
我会将您的模型从EmberFire.Object.create
更改为EmberFire.Array.create
。而不是将具有数组的对象作为属性。 EmberFire
是一个简单的包装器,它将ember对象连接到firebase
个对象。我不认为它适用于对象内部的嵌套数组,因为我刚刚开始使用该库。
如果您需要在对象中为该数组标识属性,请创建第二个对象EmberFire.Object
并添加引用此EmberFire.Array
firebase
对象的属性问题。
所以你的保存动作看起来更像是这样:
var array = this.get('model');
array.pushObject(Ember.Object.create({title: 'foo'}));
array.get('lastObject').set('title', 'bar');