Sapui5 “替换”是什么;metadataLoaded";在JSONModel中?

Sapui5 “替换”是什么;metadataLoaded";在JSONModel中?,sapui5,Sapui5,在sap.ui.model.odata.v2.ODataModel中,有一种方法可以像这样使用: this.getModel().metadataLoaded().then(function()){ var sObjectPath=this.getModel().createKey(“/”{ ID:Sobjectd }); 此._bindView(“/”+sObjectPath); }.约束(这个); 似乎没有相应的方法,因为客户端模型中没有服务元数据概念。还有其他的工作吗 我尝试了attac

sap.ui.model.odata.v2.ODataModel
中,有一种方法可以像这样使用:

this.getModel().metadataLoaded().then(function()){
var sObjectPath=this.getModel().createKey(“/”{
ID:Sobjectd
});
此._bindView(“/”+sObjectPath);
}.约束(这个);
似乎没有相应的方法,因为客户端模型中没有服务元数据概念。还有其他的工作吗

我尝试了
attachRequestCompleted
。它没有按预期工作:

函数bindview(){
那._bindView(sObjectId);
}
this.getModel().attachRequestCompleted(bindview);

正如您所说,没有元数据。但对于Json模型,为什么要等待任何事件?您可以直接绑定视图。

正如您正确地说的,没有元数据。但对于Json模型,为什么要等待任何事件?您可以直接绑定视图。

attachRequestCompleted
仅在加载模型时触发一次,因此我通过以下方式解决此问题:

jsonModelLoaded: false,

_onObjectMatched : function (oEvent) {
    if(this.jsonModelLoaded) {
        this._bindView(sObjectId);
    }

    function bindview() {
        that.jsonModelLoaded = true;
        that._bindView(sObjectId);
    }
    this.getModel().attachRequestCompleted(bindview);
}
另一个没有文档记录的解决方案是使用
this.getModel().attachRequestCompleted().pSequentialImportCo‌​已完成。然后()


此处的相关问题:

attachRequestCompleted
仅在加载模型时触发一次,因此我通过以下方式解决此问题:

jsonModelLoaded: false,

_onObjectMatched : function (oEvent) {
    if(this.jsonModelLoaded) {
        this._bindView(sObjectId);
    }

    function bindview() {
        that.jsonModelLoaded = true;
        that._bindView(sObjectId);
    }
    this.getModel().attachRequestCompleted(bindview);
}
另一个没有文档记录的解决方案是使用
this.getModel().attachRequestCompleted().pSequentialImportCo‌​已完成。然后()

此处的相关问题:

自1.641以来,
JSONModel
在调用或时返回承诺。例如:

\u对象匹配:函数(oEvent){
const myJSONModel=this.getView().getModel();
常量sObjectId=/*…*/;
myJSONModel.dataLoaded()。然后(()=>这个。_bindView(sObjectId));
},
与v2ODatamodel.metadataLoaded()2不同,如果请求失败,这里的承诺实际上会拒绝


1提交:
2从
metadataLoaded()
返回的承诺永远不会拒绝,即使加载元数据文档失败。但是,应用程序可以将
true
作为参数传递,以获得可捕获的承诺:
metadataLoaded(true)

自1.641以来,
JSONModel
在调用或时返回承诺。例如:

\u对象匹配:函数(oEvent){
const myJSONModel=this.getView().getModel();
常量sObjectId=/*…*/;
myJSONModel.dataLoaded()。然后(()=>这个。_bindView(sObjectId));
},
与v2ODatamodel.metadataLoaded()2不同,如果请求失败,这里的承诺实际上会拒绝


1提交:
2从
metadataLoaded()
返回的承诺永远不会拒绝,即使加载元数据文档失败。但是,应用程序可以将
true
作为参数传递,以获得可捕获的承诺:
metadataLoaded(true)

有时,当我在_onObjectMatched中调用bindview时,我发现获取JSON模型的API处于挂起状态。(
this.getRouter().getRoute(“对象”).attachPatternMatched(this.\u-onObjectMatched,this);
)有时我在调用\u-onObjectMatched中的bindview时发现获取JSON模型的API处于挂起状态。(
this.getRouter().getRoute(“对象”).attachPatternMatched(this.\u onObject Matched,this);