ember.js 如何订购模型?

fgw7neuy  于 2022-11-23  发布在  其他
关注(0)|答案(3)|浏览(148)

我是ember的新手,我不知道如何按标题对电影列表进行排序。我有一个带有模型挂钩的路由索引:

export default Route.extend(RealtimeRouteMixin,{
  model() {
    return this.store.findAll('movie');
  }
});

当这个路由被加载时,我渲染了一个组件。

{{landing-page
  add=(action 'addMovie')
  movies=model
}}

在这个组件中,还有其他子组件。其中一个是一个电影列表,我想在其中显示按标题排序的电影列表。
第一次
我不知道什么是最好的方法。我想在路线中排序模型,但我不知道是否必须这样做

export default Route.extend(RealtimeRouteMixin,{
  model() {
    return this.store.findAll('movie').then(funcion(data){
        // sort here ???
    });
  }
});
3zwjbxry

3zwjbxry1#

你的方法会奏效,那么sortBy就可以了。
另一种方法是把它放在你的组件层次结构中的某个地方,从控制器开始。一个简单的计算属性就可以了。There is also a computed property macro

6bc51xsx

6bc51xsx2#

我更喜欢在模板中使用ember-composable-helpers来处理简单的排序,因为它用最少的样板文件对字符串进行了很好的排序。安装该插件并重启ember服务器后,您可以在模板中使用sort-by助手来完成此操作。

//movie-list template
{{#each (sort-by "title" movies) as |movie|}}
  {{movie-list/movie-list-item
    movie=movie
  }}
  <hr />
{{/each}}
2fjabf4q

2fjabf4q3#

在控制器/组件中,您希望模型使用属性进行排序,您可以提及以下计算属性:
排序模型:sort('模型','标题:描述'),
您可以按如下方式导入排序:从'@ember/object/computed'导入{排序};
现在用sortedModel代替模板/手柄中的model。我希望这样做有意义。如果你有任何疑问,请告诉我。

相关问题