我有一个包含标签的TabbedBar,里面有Label,其启用属性我需要通过编码在.js文件中更改。我已经尝试设置该特定标签的ID并使用过。 .js文件中的$.lblProf.enabled = false;
。抛出错误:
Undefined不是对象(评估'$ .lblProf.enabled = false')
demo.xml
<TabbedBar id="tabbedBar" platform="ios" backgroundColor="#369" top="44dp" height="30dp" width="300" index="0" onClick="tabBarClick">
<Labels>
<Label>Details</Label>
<Label>Photos</Label>
<Label>Documents</Label>
<Label id="tabProfile">Profile</Label>
</Labels>
</TabbedBar>
demo.js
$.tabProfile.enabled = true;
如果我试图直接禁用,那么
<Label id="lblProf" enabled="false">
工作正常。
答案 0 :(得分:0)
正如@visola所提到的,您的标签需要一个ID才能以编程方式访问它们。否则,Alloy会给他们一个自动生成的ID,这通常对人类没有帮助。
XML
<TabbedBar id="tabbedBar" platform="ios" backgroundColor="#369" top="44dp" height="30dp" width="300" index="0" onClick="tabBarClick">
<Labels id='labelsList'>
<Label id='details'>Details</Label>
<Label id='photos'>Photos</Label>
<Label id='documents'>Documents</Label>
<Label id='tabProfile'>Profile</Label>
</Labels>
</TabbedBar>
对于tabProfile分配,$
是页面层次结构中的顶级对象。因此,$.tabProfile
不存在。这就是改变它没有效果的原因。您需要深入了解页面$.TabbedBar.Labels.Label
。话虽如此,Label
没有enabled
属性。因此,您的应用会抛出undefined
错误。
我会查看Titanium.UI.iOS.TabbedBar文档以获取更多示例。您似乎需要通过更改颜色来模拟禁用它们,例如将其设置为浅灰色,然后将touchEnabled
设置为false。
希望能帮助你前进。