2015-05-13 3 views
-1

У меня есть следующий код D3, который работает как ожидалось.Вызов D3 из Ext JS в jsfiddle

``http://jsfiddle.net/6Ldad16n/3/ 

Теперь мне нужно запустить это из кода Ext JS. Так что я создал еще одну скрипку для этого

``http://jsfiddle.net/07kk8fzs/ 

Я считаю, есть что-то еще и нужно, чтобы сделать его работу изнутри Ext JS, а результат отображается пустым, и нет никаких ошибок в консоли.

Может кто-то, пожалуйста, помогите мне с этим.

Спасибо

+0

ваш код ExtJS если вы не вставляете в него код d3? –

ответ

1

Вы не должны переопределить afterRender метод (это частный метод, и, таким образом, вы не должны полагаться на его существование), но вместо того, чтобы сделать это в вашем initComponent метод:

this.on('afterrender', function(){ 
    this.loadScript(this.onD3Loaded, this); 
}, this); 

Ваш код должен работать без этой модификации, но лучше всего добавлять собственные прослушиватели событий вместо того, чтобы переопределять структуру.

Кроме того, ваш код определяет только ваш класс d3.widgets.Treeview, он не создает его экземпляр. Попробуйте добавить это в ваш код после Ext.define:

Ext.create('d3.widgets.Treeview', { 
    renderTo : Ext.getBody() 
}); 

Я протестированные добавив его в скрипку, но что-то еще выдает ошибку, и я не знаю D3 достаточно, чтобы отладить

Смежные вопросы