2014-10-11 86 views
0

我有一个简单的模板:渲染ExtJS的组件的HTML TPL

tpl: '<table><tr><td>{LogicalCondition}</td></tr></table>', 

而不是{LogicalCondition}我希望把ExtJS的组件(动态)。

http://jsfiddle.net/4t458yxo/2/

Ext.define('MyApp.view.ux.form.BoolDisplayField', { 
     extend: 'Ext.Component', 
     alias: 'widget.booldisplayfield', 
     tpl: '<table><tr><td>{LogicalCondition}</td></tr></table>',  
     constructor: function (config) { 
      this.initConfig(config); 
      this.callParent(arguments); 
     }, 
     applyValue: function (v) { 
      if (v) { 
       this.update({ 
        //instead of combo i am getting [object object] 
        LogicalCondition: Ext.create('Ext.form.ComboBox', { 
         fieldLabel: 'Choose State', 
         store: ["a"], 
         queryMode: 'local', 
         displayField: 'name' 

        }) 
       }); 
      } 
      return v; 
     } 
    }); 
    var c = Ext.create('MyApp.view.ux.form.BoolDisplayField', { 
     renderTo: Ext.getBody(), 
     value: false 
    }); 

c.setValue(true); 
+0

你是什么意思动态?您是否希望能够根据数据值放置任何组件?或者您只需要一个复选框? – oldwizard 2014-10-12 18:46:14

回答

0

EXT(X)模板不允许在其数据,而是普通的物体或阵列组件被假定。当处理模板的新数据时,Ext会将“LogicalCondition”理解为文本 - 将对象(组合实例)转换为文本([object object])。

最有可能的是,如何实现你想要的还有另一种方法,(X)模板/数据显然不是最好的。