2017-01-13 10 views
1

如何將視圖的綁定設置爲sap.m.Table的工廠函數?sap.m.帶「this」視圖上下文的工廠函數

表以這種方式宣告:

<Table id="responsivetreetable" headerText="Collections" mode="SingleSelectMaster" 
items="{ path:'/', model:'CollectionTree', factory:'.collectionTreeFactory'}"> 

和我實現這樣的collectionTreeFactory功能控制器:

collectionTreeFactory: function(id, context) { 

的工廠函數裏面,當我使用的變量此它指的是工廠環境而不是視圖環境。我怎樣才能達到這個目標? 我的第一個想法是使用.bind(this)函數,但我沒有找到任何有關如何在xml視圖外執行工廠函數的文檔。

謝謝大家。

回答

0

通常工廠功能this自動綁定到控制器。您可以查看他的小提琴(查看控制檯以查看this值):https://jsfiddle.net/93mx0yvt/33/。但是,您可以綁定控制器內表的項目聚合,並將所需的任何功能作爲工廠功能傳遞。正如您所說的,那麼您可以使用.bind函數爲this上下文顯式設置一個值。你可以在這裏找到一個例子:https://jsfiddle.net/93mx0yvt/34/

相關的代碼片段是這樣的:

oTable.bindItems({ 
    path: "/", 
    model: "CollectionTree", 
    factory: this.collectionTreeFactory.bind(this) 
}); 

退房的bindAggregation documentation更多細節(bindItems僅僅是bindAggregation("items", ...)的簡寫)。