2016-06-30 42 views
2

我正在嘗試將模型加載到視圖中。我能夠加載模型時,我沒有像模型給出任何名稱: -在SAP UI中使用名稱加載模型5

sap.ui.getCore().byId("mao").setModel(oModel); 

但是這一模式沒有被設置爲查看,如果我給像下面。我沒有得到任何錯誤也

sap.ui.getCore().byId("mao").setModel(oModel,"myModel"); 

我使用負載數據加載我的數據

var oModel = new sap.ui.model.json.JSONModel(); 
    oModel.loadData(servicePath); 
    sap.ui.getCore().byId("mao").setModel(oModel); 

回答

0

你的綁定在視圖的路徑也應該命名模型綁定調整。詳情請參閱 在documentaion關於綁定路徑。

-1

sap.ui.getCore()。byId(「mao」)。setModel(oModel);

但是模型沒有設置爲查看,如果我給如下。

您沒有將此綁定到您將它綁定到核心的視圖。 刪除.byId(「mao」),它應該工作。

var oModel = new sap.ui.model.json.JSONModel(); 
oModel.loadData(servicePath); 
sap.ui.getCore().setModel(oModel, "myModelName"); 

讀型號:。

var oMyModel = sap.ui.getCore().getModel("myModelName"); 

sap.ui.getCore()byId( 「毛」)則setModel( 「基於myModel」)是指你想獲得由ID的對象「毛「併爲對象分配一個模型。

這是視圖結合的工作方式:

this.getView().setModel(oModel, "myModelName"); 
var oMyModel = this.getView().getModel("myModelName"); 

在OpenUI5網站那裏有一個不錯的開發演練檢查了這一點: https://openui5beta.hana.ondemand.com/#docs/guide/70ef981d350a495b940640801701c409.html

0

設置一個模型的最好辦法視圖是在Component.js文件中定義它們,或者如果您使用的是1.33或更高版本,則在manifest.json文件中定義模型。如下所示 定義模型init方法:在Component.js文件

  • 集模型

    sap.ui.define(['jquery.sap.global', 'sap/ui/core/UIComponent'], 
    function(jQuery, UIComponent) { 
    "use strict"; 
    
    var Component = UIComponent.extend("samples.components.sample.Component", { 
    metadata : { 
    } 
    init: function() { 
        var sServiceUrl = 'example/servie'; 
        var oModel = new sap.ui.model.odata.ODataModel (sServiceUrl, true); 
        this.setModel (oModel, "modelName"); 
    } 
    }); 
    return Component; 
    }); 
    
  • 設置模型的manifest.json文件 https://openui5.hana.ondemand.com/#docs/guide/be0cf40f61184b358b5faedaec98b2da.html

現在這種型號可以在任何控制器上使用,您可以訪問如下所述的型號:

var oModel = this.getView().getModel("modelName"); 
1

試試這個:

var oModel = new sap.ui.model.json.JSONModel(); 
oModel.loadData(servicePath); 

var oController = this; 

oModel.attachRequestCompleted(function() { 
    var data = oModel.getData(); 
    oController.getView().setModel(data, "namedModel"); 
}); 

然後就可以調用像這樣:

this.getView().getModel("namedModel"); 
相關問題