2014-10-11 90 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)模板/數據顯然不是最好的。