/ / Automatyczna instancja JSONModel - sapui5

Automatyczna instancja JSONModel - sapui5

Mam aplikację o następującej strukturze:

`| index.html
| |
+---webapp
| |Component.js
| |manifest.json
| |
| +---controller
| |Detail.controller.js
| |Master.controller.js
| |
| +---service
| | data.json
| |
| ---view
| App.view.xml
| Detail.view.xml
| Master.view.xml`

Mój plik manifestu definiuje źródło danych w następujący sposób:

Pod sap.app:

"dataSources": {
"mainService": {
"uri": "/service/data.json",
"type": "JSON"
}
}

Próbowałem również parametru uri ze ścieżką „service / data.json”, ale też nie działał.

Pod sap.ui5:

"models": {
"": {
"dataSource": "mainService",
"type": "sap.ui.model.json.JSONModel"
},
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "sapui5.demo.mvcapp.i18n.i18n"
}
}
}

Mój Component.js ma następujący kod:

sap.ui.define(["sap/ui/core/UIComponent", "sap/ui/model/json/JSONModel"], function( UIComponent, JSONModel)
{
"use strict";
return UIComponent.extend("sapui5.demo.mvcapp.Component",
{

metadata :
{
manifest : "json"
},

init : function()
{
// callthebasecomponent"s initfunction
UIComponent.prototype.init.apply(this, arguments);

// createtheviewsbasedontheurl/hash
this.getRouter().initialize();

},

createContent : function()
{
var oRootView = UIComponent.prototype.createContent.apply(this,
arguments);

return oRootView;
}
});
});

Mój index.html ma następujący kod skryptu:

    sap.ui.getCore().attachInit(function() {
sap.ui.require([
"sap/m/Shell",
"sap/ui/core/ComponentContainer",
"sapui5/demo/mvcapp/Component"],
function(Shell, ComponentContainer, Component)
{
new Shell({
app: new ComponentContainer({
height: "100%",
component: new Component({
id: "mvcAppComponent"
})
})
}).placeAt("content");
});
});

Nie jestem w stanie wyświetlić moich danych z lokalnego pliku json na stole. W konsoli nie ma błędów, a tabela w widoku głównym jest pusta „Brak danych”.

Wygląda na to, że plik manifestu nie ma wpływu nawszystko jako mój routing również nie działa i nie jestem pewien, w jaki sposób wyświetlany jest mój widok główny, ponieważ nawet gdy zepsułem nazwę mojego głównego widoku, nadal jest wyświetlany, co pokazuje, że plik manifestu nie jest brany pod uwagę.

Czy możesz mi pokazać, gdzie poszedłem źle?

Pozdrawiam, Salah.

Odpowiedzi:

0 dla odpowiedzi № 1

(Biorąc pod uwagę, że problem polega na ładowaniu danych, a nie na powiązaniu danych, obowiązują następujące zasady. W przypadku problemów z wiązaniem danych należy opublikować fragment kodu powiązania elementów sterujących)

The manifest.json plik jest już w środku webapp struktura folderów. Od URI adres jest ścieżką względną zgodnie z Component.js (Spójrz tutaj), musisz określić model w następujący sposób, w konkretnym przypadku:

"dataSources": {
"mainService": {
"uri": "/service/data.json",
"type": "JSON"
} }