Теперь, учитывая, что вы пытаетесь загрузить статический файл JSON в свой проект, лучше максимально использовать manifest.json
.
Таким образом, вы уверены, что данные уже загружены и доступны в модели до какой-либо привязки.
Это достигается путем добавления файла JSON в качестве источника данных под sap.app
manifest.json
"sap.app": {
"id": "com.sample.app",
"type": "application",
"dataSources": {
"data": {
"type": "JSON",
"uri": "model/data.json"
}
}
}
Теперь просто добавьте это dataSource
Вызывается data
как один из models
в sap.ui5 .
"sap.ui5": {
"rootView": {
"viewName": "com.sample.app.view.App",
"type": "XML"
},
"models": {
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "com.app.sample.i18n.i18n"
}
},
"data": {
"type": "sap.ui.model.json.JSONModel",
"dataSource": "data"
}
}
}
При этом вам больше не нужно вызывать это :
var oModel = new JSONModel();
var oView = this.getView();
oModel.loadData("model/data.json");
var oPanel = oView.byId("user-panel-id");
oPanel.setModel(oModel,"data");
.. поскольку data model
, который мы добавили в manifest.json
, уже видны oView
и oPanel
с самого начала.
Таким образом,не имеет значения, будет ли вызван форматер несколько раз, так как он уже будет иметь доступ к данным с самого начала.