0

我使用 Firebase 作为我的 Ember 应用程序的后端,并成功地将 Firebase 与 EmberFire 连接起来。但是,当我在创建记录后尝试保存模型时,将它们发布到 Firebase 时,它​​们不会在客户端的 ember 模板中更新。

在我意识到这一点之前,我的动作处理程序代码是:

actions: {
    publishPost: function() {
      var newPost = this.store.createRecord('post', {
        title: this.get('post.title'),
        body: this.get('post.body'),
        timestamp: new Date()
      });

      newPost.save();

    }
 }

我通过捕获 save() 和 find() 方法返回的承诺来尝试解决这个问题(但这不起作用)的代码是:

actions: {
    publishPost: function() {
      var newPost = this.store.createRecord('post', {
        title: this.get('post.title'),
        body: this.get('post.body'),
        timestamp: new Date()
      });
      this.store.find('post').then(function(posts) {
        posts.addObject(newPost);
        posts.save().then(function() {
          newPost.save();
        });
      });

    }
}

我只是没有正确处理上述代码中的逻辑来更新模板,还是有另一个与 Firebase/EmberFire 兼容的解决方案?

4

1 回答 1

1

https://github.com/broerse/ember-cli-blog-fire我这样做了:

import Ember from "ember";

export default Ember.ObjectController.extend({
  actions: {
    createPost: function() {
      var newPost = this.get('store').createRecord('post');
      newPost.set('date' , new Date());
      newPost.set('author' , 'C.L.I. Ember');
      this.get('target').transitionTo('post', newPost.save());
    }
 }

});

transitionTo 可以处理 newPost.save() 承诺。

试一试:http ://exmer.com/bloggrfire/posts

于 2014-09-20T02:30:12.607 回答