2017-01-05 39 views
0

我有一個GridList下的StandardListItem元素列表,並希望使用json模型將它們綁定到json文件。 這是我如何在我的控制器中進行綁定。我相信這一部分是正確的,因爲我這樣做了一張桌子。如何將數據綁定到sapui5 xml視圖中的網格佈局

var pricingModel = new JSONModel("./model/evaluation.json"); 

//set model(s) to current xml view 
this.getView().setModel(pricingModel, "pricingModel"); 

這是我的一塊XML視圖的地方,我想我綁定數據

<l:Grid class="sapUiSmallMarginTop" 
    id="priceEvalGridContainer" visible="false" 
    binding="{/PriceEstimate}"> 
<l:content> 
<l:VerticalLayout id="priceEvalCol1" width="100%"> 
    <StandardListItem title="NSN" 
         info="{NSNID}"/> 
    <StandardListItem title="DLA Price Estimate (DLA)" 
         info="{DLAPriceEstimate}"/> 
    <StandardListItem title="Proposed Price" 
         info="$20.00" /> 
</l:VerticalLayout> 
<l:VerticalLayout id="priceEvalCol2" width="100%"> 
    <StandardListItem title="$ Difference From DLA" info="$1.50" /> 
    <StandardListItem title="Total Price Difference" info="$135.00" /> 
    <StandardListItem title="PPI Price Adjusted For Inflation" info="$18.59" /> 
</l:VerticalLayout> 
</l:content> 
</l:Grid> 

我已經硬編碼了很多的價值,因爲我一直沒能正常連接數據。目前正在測試的唯一項目是info =「{NSNID}」和info =「{DLAPriceEstimate}」

我見過如何將列表或網格中的StandardListItem與其他類型的對象綁定的示例,但沒有看到它一起完成。

我試着用下面的方法做綁定,但它對我沒有用。

<l:Grid class="sapUiSmallMarginTop" 
    id="priceEvalGridContainer" visible="false" 
    binding="{ 
      path: '/PriceEstimate' 
       }"> 

該應用程序運行時沒有問題,並且沒有顯示錯誤,但數據沒有顯示在網格中。這只是空白。

回答

1
this.getView().setModel(pricingModel, "pricingModel"); 

由於您使用的命名模式,使用:

binding="{pricingModel>/PriceEstimate}" 

如果這個數據JSON是一個數組,你可能不得不給指數的內容,如:

info="{pricingModel>0/NSNID}" 

否則:info="{pricingModel>NSNID}"會做。 (與其他類似) 無論哪種方式,都取決於數據。所以請加上pricingModel的樣子。

+0

This works。我不認爲我必須具體說明數據及其模型的路徑。這正是我需要的,謝謝。 – polaris

相關問題