在sort上刷新containerView

gin*_*man 2 ember.js

我正在尝试在已经显示的容器视图之后对其进行排序.但是,由于数组的长度不会改变而只会改变顺序,因此视图不会刷新.有关如何强制观看重新渲染的最佳做法吗?

Joa*_*eie 6

如果您在此处获取Embers GitHub页面的最新版本:https://github.com/emberjs/ember.js/downloads它包含Ember.ArrayController,后者又使用Ember.SortableMixin.

您可以像这样定义控制器:

HS.BlogPostsListController = Em.ArrayController.create({
    content: [],
    sortAscending: false,
    sortProperties: ['postDate'],
    //the rest of your controller definition...
}
Run Code Online (Sandbox Code Playgroud)

然后将视图绑定到控制器的arrangeContent属性,如下所示:

{{#view MyApp.view contentBinding="HS.BlogPostListController.arrangedContent" ...}}
Run Code Online (Sandbox Code Playgroud)

这将在排序更改时更改您的视图(当您更改sortAscending或sortProperties属性时).

如果您不想提取最新版本,您应该查看SortableMixin源代码,看看是否可以将其合并到您自己的应用程序中:https://github.com/emberjs/ember.js/blob/master /packages/ember-runtime/lib/mixins/sortable.js

编辑:您可以在GitHub上看到HS.BlogPostListController在这里:https://github.com/joachimhs/haagen-software.no/blob/master/app/controllers.js