ember.js - ember js如何将对象推送到ArrayController中的堆栈顶部

标签 ember.js ember-model

我有这个 Controller ,可以从服务器获取数据,我必须触发fetchPosts方法并添加新的触发后add

App.PostsController = Ember.ArrayController.extend({
  actions: {
    fetchPosts: function (id) {
      var data = App.Post.find({category: id});
      this.set('model', data);
    },
    add: function () {
      var post = this.get('newPost');
      post.save().then(function () { 
        this.pushObject(post);
      });
   }
});

问题是记录被添加到列表的底部。我希望它像原生 js unshift 一样工作,但现在它像 push 一样工作。寻找类似 unshiftObject 的东西来使添加的对象成为数组中的第一个对象。

最佳答案

unshiftObject 在 Ember 中工作 http://emberjs.com/api/classes/Ember.MutableArray.html#method_unshiftObject .

您的代码存在超出范围的问题:

  var post = this.get('newPost');
  post.save().then(function () { 
    this.pushObject(post); // <----- this this wouldn't be the array controller
  });

关于ember.js - ember js如何将对象推送到ArrayController中的堆栈顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25428445/

相关文章:

javascript - ember-model:如何强制从服务器重新获取记录?

javascript - 处理路由时出错 : todos undefined is not a function

javascript - 带查询参数的 Ember 转换

javascript - 在 Ember 中使用 Sinon 的假服务器

javascript - Ember 未捕获类型错误 : Cannot read property 'yield' of undefined

javascript - 模型中的值未更新到 View

ember.js - 嵌套路由的Ember查询参数

ember.js - Ember 深度嵌套路由不保留父动态参数

javascript - 使用 query() 方法不使用 Ember.js 从模型中检索任何信息

javascript - 当 Ember-Model 有新记录时更新 View