首先,我相信這是XMLModel的錯誤。
見XMLModel的setProperty
方法。
XMLModel.prototype.setProperty = function(sPath, oValue, oContext, bAsyncUpdate) {
var sObjectPath = sPath.substring(0, sPath.lastIndexOf("/") + 1),
sProperty = sPath.substr(sPath.lastIndexOf("/") + 1);
// check if path/context is valid
if (!this.resolve(sPath, oContext)) {
return false;
}
if (!this.oData.documentElement) {
jQuery.sap.log.warning("Trying to set property " + sPath + ", but no document exists.");
return false;
}
var oObject;
if (sProperty.indexOf("@") == 0) {
oObject = this._getObject(sObjectPath, oContext);
if (oObject[0]) {
oObject[0].setAttribute(sProperty.substr(1), oValue);
this.checkUpdate(false, bAsyncUpdate);
return true;
}
} else {
oObject = this._getObject(sPath, oContext); //oObject would be empty
if (oObject[0]) {
jQuery(oObject[0]).text(oValue);
this.checkUpdate(false, bAsyncUpdate);
return true;
}
}
return false;
};
在最後else語句,oObject將是空的,SPATH 「text1」 中。所以新值沒有設置。
oObject = this._getObject(sPath,oContext);
雖然如果您看到JSONModel的setProperty
方法。
檢查以下線,sObjectPath將'/項/ 1',所以返回oObject和新的值設置。
var oObject = this._getObject(sObjectPath);
希望它有幫助。謝謝。
這是一個很好的觀察。這看起來很有趣... –