변수를 전달하여 특정 합금 UI 요소 을 타겟팅 할 수 있습니까? 그래서 같은 변수를 전달하고 싶습니다 :Appcelerator Alloy로 UI 요소를 동적으로 타겟팅하고 있습니까?
controller.js
var flag = "se";
changeBackground(flag); //should change the background color of ImagView of the se flag
function changeBackground(elementToChange){
elementToChange.backgroundColor = "red"; //does not work
$. + elementToChange + backgroundColor = "red"; //does not work
}
view.xml
<View id="flagRow" layout="horizontal" backgroundColor="blue" height="Ti.UI.SIZE">
<ImageView id="se" height="20dp" left="5dp" image="/images/flags/se.png" onClick="downloadPastLanguageLevels"/>
<ImageView id="de" height="20dp" left="10dp" image="/images/flags/de.png" onClick="downloadPastLanguageLevels"/>
<ImageView id="en" height="20dp" left="10dp" image="/images/flags/en.png" onClick="downloadPastLanguageLevels"/>
</View>
오른쪽 지금은 $ .flagRow 통해 반복하고있다. 컨테이너하지만 플래그를 직접 설정하는 방법을 알고 싶습니다. 당신이 "를 myButton"이라는 요소가 있다면 $ .ID를 사용하여 컨트롤러에서보기에
var i, view;
for (i in $.flagRow.children) {
view = $.flagRow.children[i];
if (view.id.indexOf(flag) > -1) {
view.backgroundColor = "red";
} else {
view.backgroundColor = "transparent";
}
}
XML에 특히 스타일을 넣는 것을 피할 필요가 있습니다. 기본값은 필요하지 않습니다. – jasonkneen
예, 알고 있습니다. 항상 끝까지 물건을 넣는거야. 개발하는 동안 나는 종종 물건을 바꿀 필요가 있기 때문에 인라인이 더 쉽다는 것을 알게된다. – user24957