モデル内のデータを手動でフィルタリングするために手動で行った配列で置き換えようとしています。私はこのデータをmodel.read()から取得します。問題は、ui5のモデル内のデータを更新するための文書化された方法のいずれも機能していないか、呼び出されたことに応答するように見えることさえありません。私は、ODATA v2を使用していますが、すべてのこれらの技術は、v2のモデルのために働くために文書化されています:https://openui5.hana.ondemand.com/docs/topics/6c47b2b39db9404582994070ec3d57a2.htmlUI5はコントローラーからモデルに新しいデータをバインドします
filterFeed: function() {
var model = this.getOwnerComponent().getModel();
var view = this.getView();
model.read("/assessmentFeed", {
success: function(odata) {
var comments = odata.results;
var results = [];
// ... do work to fill 'results'
model.setProperty('/assessmentFeed', results);
var json = new sap.ui.model.json.JSONModel(results);
view.setModel(json, "/assessmentFeed");
var list = view.byId("feedList");
list.bindAggregation("items", "/assessmentFeed", new sap.m.FeedListItem());
}
});
},
これは私のXMLビューに
<layout:content>
<m:FeedInput post="onFeedPost" class="sapUiSmallMarginTopBottom"/>
<m:List id="feedList" showSeparators="Inner" items="{path: '/assessmentFeed', sorter: {path: 'DATE', descending: true}}">
<m:FeedListItem sender="{MEMBERID}" timestamp="{DATE}" text="{COMMENT}" convertLinksToAnchorTags="All"/>
</m:List>
</layout:content>
フィードリストで、私はすべてのエラーを得ることはありませんが、上記のすべての関数を呼び出した後には、識別可能な効果はありません。
これはassessmentFeedはクロムデバッガからモデルのバインディングであることを示すモデルのaBindings配列からです。
あるらしいです。どのように私はそのギャップを埋めるだろうか?私はコントローラーのinit関数でこれを正確に行うことができますが、バックエンドサービスとの通信を壊さないより良い方法はありませんか? –
私が作った編集を見ていただけますか? –
"JSON> DATE"のような属性でモデル名を忘れました – alexP