Обычно мы устанавливаем модель после загрузки вида, а не при изменении значения. Например, если вы хотите установить JSONModel с именем «previewModel», вы можете сделать это, как указано ниже.
Обратите внимание, что onInit вызывается при инициализации контроллера. Если вы правильно связали модель следующим образом, то oEvent.getSource (). GetBinding ("value") вернет ожидаемое значение.
onInit: function(){
var oView = this.getView().byId("nameInput");
oView.setModel(new sap.ui.model.json.JSONModel({
name : "HELLO"
}), "previewModel");
},
onChange: function(oEvent) {
var oInput = oEvent.getSource();
this._validateInput(oInput);
},
...
Кроме того, для проверки входного текста вы можете выполнить следующее:
_validateInput: function(oInput) {
var oBinding = oInput.getBinding("value");
var sValueState = "None";
var sValueStateText = "";
var bValidationError = false;
if(oBinding.getValue().length === 0){
sValueState = "Error";
sValueStateText = "Custom Error"
}
oInput.setValueState(sValueState);
if(sValueState === "Error"){
oInput.setValueStateText(sValueStateText);
}
return bValidationError;
},
Обратите внимание, что код выше не высокого качества и готов к производству, так как это быстрый ответ на этот пост :)