emberSync.find有效,但是emberSync.save()没有。为什么?

时间:2014-10-09 22:31:28

标签: ember.js ember-data firebase emberfire localforage

我正在使用ember-sync,ember-localforage-adapter和emberfire解决iOS / android应用程序问题中的离线存储。由于某些未知原因(我没有得到任何错误,这是最糟糕的部分)emberSync.find /从firebase中提取数据,但是emberSync.save()/将数据推送到firebase不会。

任何帮助都将受到高度赞赏。

我在这里提出了一个问题:https://github.com/kurko/ember-sync/issues/22

如果在加载应用程序后我在控制台中执行此操作:

var route = Ember.Namespace.NAMESPACES_BY_ID[''].__container__.lookup('route:index');

我明白了:

Class {routeName: "index", _names: Array[0], context: Class, currentModel: Class, controller: Class…}

然后,当我输入这个:

var user = route.emberSync.createRecord('user', {name:'kurko'})

我明白了:

Class {id: "8tp85", store: Class, container: Container, _changesToSync: Object, _deferredTriggers: Array[0]…}

然后当我输入时:

user.emberSync.save()

我明白了:

Class {__ember1412872464239: null, __nextSuper: undefined, __ember_meta__: Object, constructor: function, _super: function…}

controllers/index.js

export default Ember.ObjectController.extend({
    actions: {
        save: function () {
        var user = this.emberSync.createRecord('user', { name: this.get('name') });
        user.emberSync.save();
        console.log(this.get('name'));
        console.log(user);
       } 
   }
});

models/user.js

var attr = DS.attr;

export default DS.Model.extend({
    name: attr('string')
});

routes/index.js

export default Ember.Route.extend({
    model: function () {
      return this.emberSync.find('user', '2oj9m');
      // return this.emberSync.createRecord('user', {name: 'Robinson'});
      console.log(this.emberSync.find('user', '5keks'));
    }
});

templates/index.hbs

{{input value=name}}
<button {{action "save"}}>Save</button>

然后我去了我的firebase仪表板,我发现没有添加任何东西......

但是,这个:route.emberSync.find('user', '2oj9m')正常工作并返回一个承诺

所有代码都在这里(主分支):https://github.com/codepreneur/embersync-localforage-example

0 个答案:

没有答案