訪問屬性有2種方式來實現這一目標:
1)異步方式:默認情況下,JSONModel生成的HTTP調用是異步的。所以如果你想在HTTP請求完成後訪問數據,那麼你需要使用下面代碼片段中提到的attachRequestCompleted方法。 這會自動調用監聽HTTP請求完成後並在聽者可以附加JSONModel到您的視圖或執行其他businsess邏輯如下提到:
var oModel = new JSONModel(jQuery.sap.getModulePath("QAQuickAccess", "/routes.json"));
oModel.attachRequestCompleted(null,function() {
console.log(oModel.getData());
this.getView().setModel(oModel) },
this);
2)同步方式:如果您想要立即加載數據,那麼您可以使用以下參數的方法使用loadData方法。這將使同步HTTP請求:
var oModel = new JSONModel({});
var url = jQuery.sap.getModulePath("QAQuickAccess", "/routes.json")
oModel .loadData(url, "", false);
this.getView().setModel(oModel);
console.log(oModel .getData());
我的日誌: oModel.getData()= {} oModel.getProperty( 「/ TileCollection」)=未定義 oModel.getJSON()= {} oModel。 oData = {} –
但是在相同的上下文中,您的oModel日誌中充滿了數據? –
oModel中的oData對象填充了「TileCollection」..它的屏幕位於問題的上方。所有日誌都在控制器的「onInit」函數中執行。 –