2017-01-05 2 views
0

У меня есть список элементов StandardListItem под Grid и хотел бы связать их с json-файлом с помощью json-модели. Вот как я делаю привязку в своем контроллере. Я уверен, что эта часть верна, поскольку я делаю это так для таблицы.как привязать данные к макету сетки в sapui5 xml view

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}"

Я видел примеры того, как связать стандартныйListItem в списке или сетке с другими типами объектов, но не видели, как это делается вместе.

Я попытался сделать привязку следующим образом, но это не сработало для меня.

<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

Это работает. Я не думал, что должен быть конкретным на пути к данным и его модели. Это именно то, что мне нужно, спасибо. – polaris

Смежные вопросы