迭代模型时排序 Ember ArrayController
Sorting Ember ArrayController when iterating the model
我有一个 ArrayController(文档),它显示了一个 ObjectsController(文档)列表来显示其内容。
我的 ArrayController 模板(文档):
{{#each document in model}}
{{render "document" document}}
{{/each}}
我面临的问题是 ArrayController 上的 "sortProperties" 和 "sortAscending" 属性不再有任何效果。我假设这是因为我正在循环 "model"。如果我循环 "each document in controller",文档 ObjectControllers 似乎没有将模型分配给它们作为对 .model 的调用然后抛出未定义的错误。我应该循环 "controller" 还是 "model"?如果答案是模型,我该如何排序,如果答案是控制器,我如何在每个控制器上设置模型?
您可能需要在 ArrayController(文档)上设置 itemController
属性。
看这里:http://emberjs.com/api/classes/Ember.ArrayController.html
编辑:此外,您在第一次使用{{#each document in controller}}时就做对了。直接从模型中执行此操作将忽略控制器中的配置,其中包括您可能拥有的排序规则。
排序后的集合公开为 arrangedContent
。
,而不是修改基本模型
为了解释为什么它是 arrangedContent
而不是 arrangedModel
,在 Ember 的 ControllerMixin content
is defined as an alias for model
, but it used to be the other way around.
我有一个 ArrayController(文档),它显示了一个 ObjectsController(文档)列表来显示其内容。
我的 ArrayController 模板(文档):
{{#each document in model}}
{{render "document" document}}
{{/each}}
我面临的问题是 ArrayController 上的 "sortProperties" 和 "sortAscending" 属性不再有任何效果。我假设这是因为我正在循环 "model"。如果我循环 "each document in controller",文档 ObjectControllers 似乎没有将模型分配给它们作为对 .model 的调用然后抛出未定义的错误。我应该循环 "controller" 还是 "model"?如果答案是模型,我该如何排序,如果答案是控制器,我如何在每个控制器上设置模型?
您可能需要在 ArrayController(文档)上设置 itemController
属性。
看这里:http://emberjs.com/api/classes/Ember.ArrayController.html
编辑:此外,您在第一次使用{{#each document in controller}}时就做对了。直接从模型中执行此操作将忽略控制器中的配置,其中包括您可能拥有的排序规则。
排序后的集合公开为 arrangedContent
。
为了解释为什么它是 arrangedContent
而不是 arrangedModel
,在 Ember 的 ControllerMixin content
is defined as an alias for model
, but it used to be the other way around.