【发布时间】:2018-08-02 12:53:14
【问题描述】:
我可以将小部件的name 传递给function 以创建标签吗?
类似
-
let widgetName = new Tab({...
为什么?
- 我需要放很多不同的
每个
tab内创建的小部件,即:.appendTo(tabCart)
注意:当我创建一个函数 createTextViews() 时,我分配了一个唯一的
id: txvName +(index)
(将array 传递给createTextView(),然后是forEach 循环)
并且可以通过 id 寻址每个TextView,效果很好。
示例代码:(适用于 /playground)
const {Tab, TabFolder, TextView, ui} = require('tabris')
let tabFolder = new TabFolder({
left: 0, top: 0, right: 0, bottom: 0
}).appendTo(ui.contentView)
createTab('tabCart', 'Cart')
createTab('tabPay', 'Pay')
createTab('tabStats', 'Stats')
function createTab (widgetName, title) {
// let widgetName = new Tab({ //fails, can't assign twice, wrong type anyways
let tab = new Tab({
title: title
}).appendTo(tabFolder)
new TextView({
centerX: 0, centerY: 0,
text: 'Content of Tab ' + title
}).appendTo(tab)
}
【问题讨论】:
-
我不确定你将名称传递给函数是什么意思。您是否尝试将生成的
Tab分配给createTab函数范围之外的变量?如果是这样,真正做到这一点的唯一方法是使用var来提升它们,但它们都是相同的参考。相反,在createTab的底部,您可以return tab;并将每个函数调用的响应分配给一个变量,例如let cartTab = createTab(/* ... */);
标签: javascript widget tabris