2017-03-16 5 views
-1

Ich habe eine SAPUI5 App mit 2 Ansichten. Als ich von der ersten Ansicht zu der zweiten Ansicht versuchen, navigieren mit einem Router wirft es diesen Fehler:SAPUI5: JSONModel ist kein Konstruktor

„Uncaught Typeerror: JSONModel kein Konstruktor ist (...)“

Das Problem ist, ich habe den Inhalt zu konsumieren der JSON zum Füllen einer Tabelle und mit diesem Fehler ist es immer noch leer

In einem ähnlichen Fall/Anwendung läuft mein Code ohne ein Problem, so würde ich mich freuen, wenn jemand meinen Code lesen kann, wenn es einige Fehler gibt .. .

Main.view.xml

<mvc:View controllerName="App.controller.Main" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc" 
displayBlock="true" xmlns="sap.m"> 
<App> 
    <pages> 
     <Page> 
      <content> 
       <Table id="paramTable" items="{/callbackData}" width="auto" class="sapUiResponsiveMargin"> 
        <columns> 
         <Column> 
          <Label text="Parameter"></Label> 
         </Column> 
         <Column width="10%"> 
          <Label text="CurrentVal"></Label> 
         </Column> 
         <Column width="10%"> 
          <Label text="TargetVal"></Label> 
         </Column> 
         <Column width="30%"> 
          <Label text="Description"></Label> 
         </Column> 
        </columns> 
        <items> 
         <ColumnListItem> 
          <cells> 
           <ObjectIdentifier title="{key}"></ObjectIdentifier> 
          </cells> 
          <Text text="{currentVal}"></Text> 
          <Text text="{operator} {targetVal}"></Text> 
         </ColumnListItem> 
        </items> 
       </Table> 
      </content> 
     </Page> 
    </pages> 
</App> 

Main.controller.js

sap.ui.define([ 
"sap/ui/core/mvc/Controller", 
"sap/ui/model/json/JSONModel" 
], function(Controller , JSONModel) { 
"use strict"; 

return Controller.extend("App.controller.Main", { 

    onInit : function() { 

     this.getView().setModel(new JSONModel({ 
      callbackData: [] 
     })); 

    }, 

    setTableData : function() { 
     var here = this; 
     $.ajax({ 
      url : '../../test.xsjs', 
      type : "GET", 
      success : function(data) { 
       here.getView().getModel().setProperty("/callbackData", data); 
      } 
     }); 
    } 
}); 
}); 

Vielen Dank im Voraus !!!

+0

// versuchen Sie es so. this.getView(). setModel (neues sap.ui.model.json.JSONModel ({ callbackData: [] })); –

+1

@suryabhanmourya Das ist nicht die echte Lösung. Das Auflösen von '" sap/ui/model/json/JSONModel "' und somit die Verwendung des Moduls ohne den globalen Namespace sollte einfach funktionieren. Im Code von @ user7715132 ist etwas anderes falsch, das hier wahrscheinlich nicht angegeben wurde. – boghyon

Antwort

0
var oModel = new JSONModel({ 
        callbackData: [] 
       }); 

this.getView().setModel(oModel); 
+1

Könnten Sie mehr Kontext und Erklärung hinzufügen, was dieser Code macht? Können Sie antworten, was den ursprünglichen Fehler verursacht? –