我对SAPUI5排序方法有疑问。
var sOrder = "asc"
oView.byId("myList").getBinding("items").sort(
sOrder && new Sorter("LastName", sOrder === "desc")
);
在上面的代码中,我有以下疑问。
sort 方法到底接受什么?
&&在这种情况下意味着什么以及它如何影响排序?
这是项目Project link
请分享您的观点
答案 0 :(得分:1)
1。。这是application:sap.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]
,sOrder
或undefined
。这再次意味着,在"acs"
的上下文中,如果"desc"
或sOrder && new Sorter("LastName", sOrder === "desc")
被分配给sap.m.Table
,则"acs"
会被排序。