Я столкнулся с этой ситуацией, работая над решением проблемы. Учитывая приведенный ниже сценарий, снабженный ссылкой jsfiddle:
http://jsfiddle.net/fp5Lt7zx/1/
enyo.kind({
name:'base',
components:[
{name:'button', kind:'moon.Button'}
],
create: function(){
this.inherited(arguments);
this.$.button.createComponent({
name:'tag',
classes:'list-recording-tag',
components: [{
content: "NEW",
classes: "list-recording-tag-font"
}]
});
}
});
new base().renderInto(document.body);
Это прекрасно работает, но проблема возникает, когда вместо того, чтобы писать функциональность, указанную в create, я пытаюсь передать ее в функции рендеринга. Ниже приведена ссылка с визуализированной функцией, имеющей ту же функциональность.
С визуализированной функцией динамически созданный компонент «тег» не будет отображаться. Поэтому для принудительного рендеринга мне пришлось добавить эту строку кода
this.$.button.$.tag.render(); //this way is not recommended though
Почему необходимо принудительно отображать компонент тега в функции рендеринг, а не в функции create. Помимо этого, какие еще различия нужно учитывать между ними?