2016-08-19 81 views
0

我需要启用或禁用基于数据长度所以这里按钮模型更新是我的XML视图表达结合不工作时在UI5

<mvc:View 
    xmlns="sap.m" 
    xmlns:mvc="sap.ui.core.mvc" 
    xmlns:core="sap.ui.core" 
    height="100%" 
    controllerName="test.controller.expbind"> 
     <Button text="Need to Enable" enabled="{= ${/listOfData}.length>0 }"/> 
     <List headerText="Data" items="{ 
          path: '/listOfData' 
          }" > 
        <StandardListItem  title="{Name}"/> 
     </List> 
     <Button text="AddSomeData" press="onPress" /> 
</mvc:View> 

而在控制器init方法将初始化模型和onPress我加入一些数据模型

onInit: function() { 
    this.viewModel = new JSONModel({ 
     listOfData : [] 
    }); 
    this.getView().setModel(this.viewModel); 
}, 
onPress : function() 
{ 
    var existingdata = this.viewModel.getProperty('/listOfData'); 
    existingdata.push({Name:"New"}); 
    this.viewModel.setProperty('/listOfData',existingdata); 
} 

添加数据后,需要启用按钮具有启用,但它不是发生

任何问题都是绑定或表达式?

回答

0

由于XMLView表达式绑定是在预处理过程中计算的,因此不会在直接更新模型时重新计算。

您可以通过使用格式化功能避免这种行为,或更新绑定的强制刷新模型在更新后的模型:

this.viewModel.refresh(true);