在SAPUI5中对列表进行排序

时间:2018-09-25 06:47:40

标签: sapui5

我对SAPUI5排序方法有疑问。

var sOrder = "asc"
oView.byId("myList").getBinding("items").sort(
        sOrder && new Sorter("LastName", sOrder === "desc")
);

在上面的代码中,我有以下疑问。

  1. sort 方法到底接受什么?

  2. &&在这种情况下意味着什么以及它如何影响排序?

这是项目Project link

请分享您的观点

1 个答案:

答案 0 :(得分:1)

1。。这是applicationsap.ui.model.odata.v4.ODataListBinding中使用的模型。 sap.ui.model.odata.v4.ODataListBinding的方法sort()接受以下参数之一作为可选参数:

  • sap.ui.model.Sorter
  • sap.ui.model.Sorter[]

2。&&在此上下文中表示,如果第一个表达式可转换为true,则返回第二个表达式。因此,如果sOrder中的sOrder && new Sorter("LastName", sOrder === "desc")为true,则返回new Sorter("LastName", sOrder === "desc")。但是如果第一个表达式可转换为false,则返回第一个表达式。

这会影响排序,以至于仅在sap.ui.model.Sorter转换为new Sorter("LastName", sOrder === "desc")时返回第二个表达式sOrder的{​​{1}}。它没有虚假的值。因此,仅调用true的{​​{1}}方法,因此如果第一个表达式不是伪造的,则sort()将被排序。虚假的值是:

  • sap.ui.model.odata.v4.ODataListBinding
  • sap.m.table
  • false
  • null
  • undefined
  • 0
  • NaN
  • ''

在所述的应用程序中,您找到""document.all。这意味着aStates = [undefined, "asc", "desc"]被分配了var sOrder = aStates[iOrder]sOrderundefined。这再次意味着,在"acs"的上下文中,如果"desc"sOrder && new Sorter("LastName", sOrder === "desc")被分配给sap.m.Table,则"acs"会被排序。