无法在Enyo中动态添加组件(按钮)
Unable to add components(buttons) dyanamically in Enyo
我使用的是Enyo中的窗口视图,它基本上从数据库中获取数据,并基于no。获取项,动态创建多个按钮。在单击任何按钮时,将对数据库进行另一次调用以获取其他项集。获取的项需要动态地添加到
- 项作为按钮。这是由代码-
完成的
testPOSView : function(inSender, inEvent) {
var data = inEvent.data;
console.log(data.tables);
enyo.forEach(data.tables, function(table) {
console.log(table);
this.$.sectiontablebar.createComponent({
kind : 'OB.OBPOSPointOfSale.UI.TablesButton',
button : {
kind : 'OB.UI.Section',
content: table.tableName,
id: table.tableId
}
});
}, this);
}
但是当我点击按钮时,我从DB得到结果,但它们没有添加到sectiontablebar组件。
文件的完整代码可在@ https://gist.github.com/sangramanand/ad665db9cd438001254a
任何帮助都会很感激。谢谢! !
我不确定这是方法,但是当我动态创建子组件时,我将this.render()
添加到函数的末尾。这将呈现组件,从而显示动态添加的内容。
如果我重写你的代码,我会这样做:
testPOSView : function(inSender, inEvent) {
var data = inEvent.data;
enyo.forEach(data.tables, function(table) {
// create the sub-component in "this"
this.createComponent({
// and assign the container
container: this.$.sectiontablebar,
kind : 'OB.OBPOSPointOfSale.UI.TablesButton',
button : {
kind : 'OB.UI.Section',
content: table.tableName,
id: table.tableId
}
});
}, this);
this.render();
}
当testPOSView在异步调用后运行以获得db结果时,更有可能丢失指向此的指针。
在你的anythingTap函数(见要点,读者)中,你可以尝试绑定你要发送到OB.DS.Process的函数:
this.bindSafely(function(data) {me.doTestPOSView();}))
顺便说一下,如果你正确地绑定你的函数,你可能会消除所有这些愚蠢的事情。
相关文章:
- 为什么我的按钮组件提交它所在的表单
- 单击按钮更改组件状态
- 类似单选按钮的行为 Vue.js 组件
- 如何在Liferay搜索组件中获取搜索按钮的ID
- React 同级组件在按下按钮时进行通信(登录表单)
- 如何在 React 组件中使用 Facebook 开发者站点的 Facebook 登录按钮
- 如何将数据从子组件获取到 props 中传递的按钮的 onclick 中
- 任何想法为什么这个反应组件按钮在单击上不会触发
- CakePHP - 从视图中调用组件的函数,并在单击按钮时执行它
- 通过按下按钮加载具有不同数据的同一组件
- 根据用户的操作或按钮点击,用另一个替换子反应组件
- 调用了如何为创建按钮的每个组件提供不同的id
- ExtJS 按钮 2 上单击执行单击按钮 1 按组件
- 从按钮点击事件渲染React组件
- 无法在Enyo中动态添加组件(按钮)
- 隐藏动态创建的单选按钮组件
- ExtJS 5.0 -添加按钮作为覆盖到组件
- 值没有绑定到角自定义单选按钮组件中
- 可以从后退按钮事件调用滑动菜单组件的closeMenu方法
- 在React.js中,点击一个组件中的按钮不会改变其他组件中的值