0

看了很多,还是自己解决不了。我有一个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');
    }
}
});

当保存操作仅调用标题更改时,在火基地上进行。

有人可以解释一下如何更改数组吗?

4

1 回答 1

0

我会将您的模型从 a 更改EmberFire.Object.createEmberFire.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');  
于 2013-11-06T21:30:12.933 回答