与XML视图或Controller的数据绑定,这在MVC中是推荐的

时间:2018-05-23 18:22:32

标签: model-view-controller data-binding sapui5 ui5-library

问题与MVC架构的基本定义有关。数据绑定,UI5遵循MVC,其中视图是我们想要显示的内容,而Controller是使用View&模型。 在UI5中,如果您看到任何标准(旧)应用程序,我们可以看到仅在控制器级别完成的数据绑定 - 具有JS视图/ XML视图的应用程序 我们在控制器和binddata中创建UI控件或引用现有的UI控件和绑定数据 例如:

// create your controls        
var oTextView = new sap.ui.commons.TextView("textView", {
    // bind text property of textview to firstName property in the model
    text: "{/firstName}",
    tooltip: "First Name"
});
var oTxt = new sap.ui.commons.TextField("txtField", {
    // bind text property of textfield to firstName property in the model
    value: "{/firstName}"
});

var oTXt= this.getView().getElementbyId("text UI id here");
oTxt.bindProperty("enabled", "/enabled");

但是如果您通过webIDE或所有新应用程序开发任何基于模板的应用程序,我们可以看到数据绑定仅在XML View级别完成。 喜欢

 <Input value="{/firstName}" valueLiveUpdate="true" width="200px" enabled="{/enabled}" />
      <Label text="Last Name" class="sapUiSmallMargin" />
      <Input value="{/lastName}" valueLiveUpdate="true" width="200px" enabled="{/enabled}" />
      <CheckBox selected="{/enabled}" text="Enabled" />

那么在数据绑定中遵循的最佳方法是什么?在两种情况下它如何支持MVC的定义

谢谢,

马赫什

1 个答案:

答案 0 :(得分:1)

通过控制器进行的数据绑定是&#34; old&#34;做数据绑定的方式。使用XML视图,它可以更轻松,更快速地进行数据绑定,因为框架可以为您做很多事情。

您的控制器编码将更具可读性,因为您不必将所有数据绑定到控件上。

我建议您通过视图使用数据绑定,只要它符合您的需求。可能存在一些需要通过控制器进行数据绑定的情况。但是,两种方式都是正确的。一些非常严格的MVC定义会对此产生一些问题,但在我看来,这种技术的好处比严格的MVC定义更重要。