更新使用queryParams过滤的模型,而不在EmberJS中进行转换

时间:2014-12-16 21:45:10

标签: ember.js query-parameters

在我的应用程序中,我有一条路线,我使用queryParams过滤数组。当我向数组中添加一个符合过滤条件的新项目时,模板不会使用新项目进行更新。

http://emberjs.jsbin.com/qetami/1#/colors?type=secondary

上的超级简单示例bin

在该示例中,在过滤为辅助颜色时,单击“添加颜色”按钮并添加颜色类型设置为辅助颜色的新颜色。颜色不会立即出现。如果您更改过滤器,则返回到它出现的辅助过滤器。在未过滤/默认路线上时会自动显示。

我已尝试使用queryParams路径中的Colors挂钩,但没有运气。

这似乎应该是直截了当但我碰到了一堵墙。

2 个答案:

答案 0 :(得分:2)

我真的无法使用.observes(),但是如果你利用通过路线冒泡的动作,我想出了你的例子的工作版本,这样你就可以很好地调用this.refresh()为了重新加载过滤后的模型。

http://jsbin.com/qomiba/3/edit

旁注,我发现在不同的地方提到“颜色”意味着不同的事情让我感到困惑。

答案 1 :(得分:0)

来自emberjs.com/guides

  

这将卸载搜索到服务器的所有可能记录,   同时仍然创建包含记录的实时更新列表   在客户端上创建和修改。

App.PostsFavoritedRoute = Ember.Route.extend({
  model: function() {
    var store = this.store;

    // Create a filter for all favorited posts that will be displayed in
    // the template. Any favorited posts that are already in the store
    // will be displayed immediately;
    // Kick off a query to the server for all posts that
    // the user has favorited. As results from the query are
    // returned from the server, they will also begin to appear.
    return store.filter('post', { favorited: true }, function(post) {
      return post.get('isFavorited');
    });
  }
});