2015-10-02 39 views
0

我在控制器的onInit()功能定義JSON模式:無法獲取模型的數據

var oSelectedFields = {}; 
oSelectedFields.counter = 0; 
var oSelectedFieldsModel = new sap.ui.model.json.JSONModel(); 
oSelectedFieldsModel.setData(oSelectedFields); 
sap.ui.getCore().setModel(oSelectedFieldsModel, "selectedFieldsCounter"); 
console.log("oninit(). ",oSelectedFields); //(1) 

然後,(我想這個模型的數據,使用它,更新它的功能之一的功能被稱爲上press事件):

function(oEvent){ 
    var oSelectedFields = sap.ui.getCore().getModel("selectedFieldsCounter").getData(); 
    console.log(oSelectedFields);//(2) 
    oSelectedFields.counter++; 
    //rest of the function's code here 
} 

線(1)顯示和oninit(). Object {counter: 0}線(2)顯示Object {}

如果我稱之爲第二次功能,線(2)顯示Object {counter: NaN}

的問題是,爲什麼我不能讓模型的數據?

+0

上面的代碼爲我工作。將需要關於應用程序的文件夾結構的信息來檢查問題出現的原因。 – Veeraraghavan

+0

@Veeraraghavan一切都在同一個控制器中(在我的應用程序中,我有1個視圖和1個控制器文件)。 – keshet

回答

0

我曾在模型聲明一個變量干擾誤差。

模型聲明後,我宣佈與空對象另一個模型。

通過錯誤,我分配了空對象到所述第一模式。

1

我得到它的工作。檢查這個環節是使用Example

var oSelectedFields = sap.ui.getCore().getModel("selectedFieldsCounter").getData(); 
      console.log(oSelectedFields);//(2) 
      oSelectedFields.counter++; 

我有一個簡單的按鈕在哪裏檢索模型數據和控制檯打印完成的。
您可以使用此代碼並使其適用於您。否則,您可以添加需要進一步檢查的失敗代碼。
我想你會使用雙向綁定,因此模型正在被一些動作改變。

+0

看起來像在「乾淨」的環境下代碼工作正常。問題是什麼會影響模型,我該如何解決它。在這個問題中,我展示了應用程序中使用該模型的所有地方以及該模型中的所有操作。 – keshet

+0

通常在sap.ui.getCore()上設置模型是不可取的,尤其是當您在啓動板上運行時,因爲多個應用程序在模式下運行。你能告訴我你在哪裏運行應用程序。它是獨立的場景還是其他環境中 – Veeraraghavan

+0

當我從WEB IDE(使用「RUN」按鈕或Alt + F5)測試應用程序時,我遇到了此問題。這是我運行的唯一應用程序。我試圖將模型設置爲視圖,而不是全局(核心)。但它沒有幫助。 – keshet

相關問題