无法设置" id"合金中的动态属性

时间:2017-06-14 18:41:39

标签: titanium titanium-mobile appcelerator-titanium titanium-alloy appcelerator-alloy

我正在尝试使用

设置标签的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}" />    

但它并没有这样做。事实上,我试图设置accessibilityLabel,但它再次没有用。

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

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

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

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

1 个答案:

答案 0 :(得分: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);
}

您可以通过Rene Pot在this 7min read article找到有关此模式的更多信息。

希望这有助于解决您的问题。