无法在 Alloy 中动态设置 "id" 属性
Unable to set "id" property dynamically in 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 字段设置硬编码值!
我相信 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 上找到更多关于此模式的信息。
希望这对您的问题有所帮助。
我正在尝试使用
设置标签的 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 字段设置硬编码值!
我相信 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 上找到更多关于此模式的信息。
希望这对您的问题有所帮助。