Enyo 中创建函数和渲染函数之间的场景差异
Scenario difference between create and rendered function in Enyo
我在解决问题时遇到了这种情况。考虑以下情况,提供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 中给出的功能,而是尝试在渲染函数中提供它时,问题就来了。以下是具有相同功能的渲染函数的链接。
http://jsfiddle.net/esoyhrh7/
使用渲染函数,动态创建的"标签"组件将不会呈现。所以为了有力地渲染,我不得不添加这行代码
this.$.button.$.tag.render(); //this way is not recommended though
为什么需要在渲染函数中强制渲染标签组件,而不是在创建函数中。除此之外,它们之间还需要考虑哪些差异?
如果将
控件添加到已呈现的控件中(就像将其放入呈现函数时所做的那样),则必须强制浏览器重绘,因此需要在新控件上调用 .render()。 如果将其保留在 create 中,则在呈现其包含控件之前构造组件,因此在呈现时将存在。
相关文章:
- Jquery在函数之间传递表行
- d3中堆栈函数和嵌套函数之间的差异
- 如何在函数之间切换
- JavaScript/jQuery-添加添加和删除类与下一个函数之间的延迟
- Javascript-defineProperty和直接在对象上定义函数之间的区别
- 在函数之间传递javascript变量
- 两个函数之间的角度承诺
- Javascript创建函数,以便在其他函数之间共享变量
- 直接绑定和使用每个函数之间的区别
- 节点模块对象范围:在所有函数之间共享一个对象
- js 函数之间使用参数的区别
- angularjs+ui.router:指令控制器和链接函数之间的不同行为
- 如何在onchange事件中的两个函数之间进行选择
- 在使用ajax调用的函数之间调用相同的函数
- 在JavaScript函数之间传递JSON值
- 试图理解JavaScript中原型和构造函数之间的区别
- 什么'新函数和函数之间的区别
- javascript函数之间的OR运算符
- 以下jquery和requireJS函数之间的区别
- 在Javascript中的函数之间共享变量