0

动态设置的“ID”属性我试图用无法在合金

<ScrollableView 
    id="scrollableView" 
    showPagingControl="false" 
    dataCollection="question" 
    dataTransform="transformFunction" 
    dataFilter="dataFilterFunction"> 
    <ScrollView id="rwr" width="100%" layout="vertical" scrollingEnabled="false"> 
     <View width="100%" layout="vertical" height="100%" >   
      <Label id='lbl{id}' color="black" text="{id}{description}" />  

设置标签的ID,但它不会以这种方式工作。事实上,我试图设置accessibilityLabel,但它再次没有奏效。

<Label id='lbl{id}' 
    color="black" 
    text="{id}{description}" 
    accessibilityLabel ="{difficulty_level}" /> 

我确定id字段有一些独特的价值,因为当我在文本中设置它显示在文本中。 我试图设置静态文本,即使没有工作。

<Label id='abc' color="black" text="{id}{description}" /> 

但是我可以为ScrollableView的id字段设置硬编码值,它不是动态创建的!

回答

0

我认为id属性最终在构建集合时以某种方式被Alloy使用,并且无法在稍后通过通用数据绑定进行操作。

您尚未指定为什么需要直接设置ID,但有另一种方式可以访问集合中的特定视图:itemId属性。就像这个例子:

<ListSection 
    dataCollection=”$.Departures” 
    dataTransform=”transformDeparture” 
> 

<ListItem 
    title=”{title}” 
    itemId=”{departureId}” 
/> 
</ListSection> 

然后你就可以通过编程访问元素,例如,在单击事件:

function itemClick(e){ 
var model = $.Departures.get(e.itemId); 
} 

您可以找到有关this 7min read article这种模式由刘若英更大量的信息锅。

希望这可以帮助你解决问题。

+0

虽然这么认为......但即使这篇文章也没有提到这两个Appcelerator文档。 我认为使用id访问元素会很容易。我想访问的元素不是被点击的元素。想要避免children.children.children链 – saurabh

+0

,但它甚至没有设置accessibilityLabel值 – saurabh