Binding SAPUI5自定义控件绑定

Binding SAPUI5自定义控件绑定,binding,controls,sapui5,Binding,Controls,Sapui5,我试图弄清楚如何将数据模型绑定到自定义控件。我在这里搜索了许多类似的问题,但它们似乎与我试图做的不匹配。也许我的方法错了 无论如何,我创建了一个Plunkr()来演示。创建两个输入字段,其中一个位于扩展sap.m.Panel的自定义控件上。我正在尝试将名称和启用属性绑定到两个输入字段。页面上的简单sap.m.输入没有问题,但自定义控件中的输入没有问题。按下按钮时,两个输入字段的名称和启用属性应更改 对于自定义控件,我试图将绑定属性传递给嵌入式输入字段的值和启用的属性,如App.view.xml所

我试图弄清楚如何将数据模型绑定到自定义控件。我在这里搜索了许多类似的问题,但它们似乎与我试图做的不匹配。也许我的方法错了

无论如何,我创建了一个Plunkr()来演示。创建两个输入字段,其中一个位于扩展sap.m.Panel的自定义控件上。我正在尝试将名称启用属性绑定到两个输入字段。页面上的简单sap.m.输入没有问题,但自定义控件中的输入没有问题。按下按钮时,两个输入字段的名称启用属性应更改

对于自定义控件,我试图将绑定属性传递给嵌入式输入字段的启用的属性,如App.view.xml所示

如果我在MyPanel.js中更改以下内容:

value: mSettings.value,
enabled: mSettings.enabled

一切正常


任何帮助或指导都将不胜感激。

您必须在自定义控件中定义“value”和“enabled”属性。要使绑定正常工作,您需要在扩展控件中使用自定义setter/getter方法。这些方法在绑定更新时调用

以下是最新的


您必须在自定义控件中定义“value”和“enabled”属性。要使绑定正常工作,您需要在扩展控件中使用自定义setter/getter方法。这些方法在绑定更新时调用

以下是最新的


嗯,我把你的代码复制到Plunker里了。还是不行。我把你的密码复制到Plunker里了。还是不行。
value: '{/name}',
enabled: '{/editing}'
sap.m.Panel.extend('my.App.MyPanel', {
 constructor: function(mSettings) {
 sap.m.Panel.apply(this, arguments);

 this.ef = new sap.m.Input({
   width: '100px',
   value: mSettings.value,
   enabled: mSettings.enabled
 });

 this.setAggregation('_ef', this.ef);
 },

 metadata: {
   properties: {
     enabled: { type: 'boolean', defaultValue: true },
     value: { type: 'String', defaultValue: "" }
  },

   events: {
   },

   aggregations: {
     _ef: { type: 'sap.m.Input', multiple: false, visibility: 'hidden' }
   }
 },

 init: function() {
 },

 renderer: function(oRM, oControl) {
   oRM.renderControl(oControl.getAggregation('_ef'));
 },

 setValue: function (sValue) {
   this.ef.setValue(sValue);
 },

 setEnabled: function (bValue) {
   this.ef.setEnabled(bValue);
 },

 getValue: function(){
   return this.ef.getProperty("value");
 },

 getEnabled: function(){
  return this.ef.getProperty("enabled");
 }

});