【问题标题】:Ember.js with EmberFire Object - How to use with array attributes?Ember.js 与 EmberFire 对象 - 如何与数组属性一起使用?
【发布时间】:2013-11-06 09:20:15
【问题描述】:

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

当保存动作只调用了标题更改是在火基地上进行的。

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

【问题讨论】:

    标签: javascript ember.js firebase emberfire


    【解决方案1】:

    我会将您的模型从 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');  
    

    【讨论】:

      猜你喜欢
      • 2021-05-08
      • 1970-01-01
      • 2020-09-24
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-15
      • 2020-10-13
      相关资源
      最近更新 更多