私はSAPUI5の新機能です。UI5 - マスタセクションの各一覧項目の数を取得
マスター詳細ページ(SAP Web IDEから入手可能なマスター詳細テンプレートのビューはXMLです)は、私のモデル(モックデータ)の項目を表示します。
マスターセクションはエンティティInterests
にバインドされています。詳細セクションは、エンティティMessages
から情報を取得します。私はそれらの間に参照制約があり、それは完全に問題なく動作します。マスターセクションのアイテムをタップすると、詳細セクションの表に対応するアイテムが表示されます。
マスターセクションのリスト:
マスター部エンティティMessages
(に表示されるアイテムの合計数に等しい数の値を表示する必要がある
<List
id="list"
items="{
path: '/InterestsSet',
sorter: {
path: 'InterestShortDescription',
descending: false
},
groupHeaderFactory: '.createGroupHeader'
}"
busyIndicatorDelay="{masterView>/delay}"
noDataText="{masterView>/noDataText}"
mode="{= ${device>/system/phone} ? 'None' : 'SingleSelectMaster'}"
growing="true"
growingScrollToLoad="true"
updateFinished="onUpdateFinished"
selectionChange="onSelectionChange">
<items>
<ObjectListItem
type="{= ${device>/system/phone} ? 'Active' : 'Inactive'}"
press="onSelectionChange"
title="{InterestShortDescription}"
number="{path :'MessagesSet', formatter:'.productCount'}">
</ObjectListItem>
</items>
</List>
すなわち詳細に表示される行の数に等しいですセクション)。いくつかの調査(究極的にはSAPUI5 - How to Bind Odata $count to a XML viewから)の後、私はformatter
プロパティについて知りに来て、それを追加しました。
私のフォーマッタは、このように読み取ります
productCount: function(oValue){
if (oValue) {
var sPath = this.getBindingContext().getPath() + '/MessagesID';
var oBindings = this.getModel().bindList(sPath);
return oBindings.getLength();
}
}
私はoValue
をログに記録しようとしたが、それはundefined
として戻っているようです。
マスターリストの各項目の数を取得する方法はありますか。
ポインタありがとうございます。私は 'InterestsID'への参照を修正しました。最初に述べた関数を使用して: 'productCount:function(InterestID){return this.getView()。byId(" lineItemsList ")。getItems()。length;}'私はエラーが発生しました 'Fake XHR onreadystatechangeハンドラ例外がスローされました:プロパティ 'getItems'が未定義です "。私は 'EventProvider com.otmm.controller.Master'として返す 'this'を記録しようとしました。 – arunmenon
2番目の関数 'productCount:function(InterestID){var uri ="/InterestsSet(InterestsID = '"+ InterestID +"')/ Messages/$ count "; return this.getView()。getModel()。read(uri);} 'はそれぞれの項目を呼び出しますが、それぞれが404を返します。http:// localhost:50481/here/goes/your/serviceurl/InterestsSet(InterestsID = '1')/ Messages/$ count。私は '/Messages/'(i.e.YourNameNavigationsToMessages)はおそらく問題だと思います。 – arunmenon
また、同じ "Fake XHR onreadystatechangeハンドラが例外を投げた:getItems()。length;}'例外をスローしました:読み込めません。プロパティ '未定義のgetItems'エラーです。 'lineItemsList'は、詳細セクションのListのIDです。 – arunmenon