更新模型并不总是导致更新的视图

Jor*_*org 1 javascript sapui5

我正在使用SAPUI5制作应用程序,但是模型更新没有及时反映在视图中而引起问题。

一个稍微简化的场景:我创建了一个文本字段,该文本字段从模型中获取文本:

currentText = new sap.m.Text({
    width: '100%',
    text: '{/currentTrip/perHour}'
});
Run Code Online (Sandbox Code Playgroud)

然后创建一个选择并附加一个更改处理程序:

sourceSelect.attachChange(oController.changeTripSource);
Run Code Online (Sandbox Code Playgroud)

在该控制器函数内部,我正在更新视图模型:

var model = this.getView().getModel().getData();
model.currentTrip.perHour = 5;
Run Code Online (Sandbox Code Playgroud)

我使用此更改事件产生的该编号所做的所有工作(例如更新直接使用此编号的连接图)。但是,在我执行其他操作(如按下按钮或其他操作)之前,视图本身将不会反映对模型的更改。我不明白为什么会这样,或者是什么触发了UI5来检查对模型的更改值并更新视图。有人对此有解决办法吗?

mat*_*btt 5

您为什么不setProperty()直接调用模型?这将节省您不必要的调用来更新绑定,因为该模型将在内部完成。

model.setProperty("/currentTrip/perHour", 5);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我不明白为什么updateBindings()刷新不起作用。两种方法都称为checkUpdate()幕后花絮。