Как получить элемент, сгенерированный кодом в приложении Appcelerator

Я создаю приложение со студией appcelerator. Теперь я хочу вставить по коду какой-то элемент в свой вид.

Итак, я создаю этот код:

 var view1 = Ti.UI.createView({
          left : 0,
          width : "35%",
      top: "30px"
      });

    var label1 = createHeader(Titanium.Locale.getString(lang+"social_history")); 

    view1.add(label1);

    function createHeader(headerText){
        var heading = Ti.UI.createView({
        backgroundColor : "#0c7b84"
        });

        var headingText = $.UI.create("Label", {
        classes: 'headerTableLabel'
        });
        headingText.text = headerText;

        heading.add(headingText);

        return heading;
    }
....
....

Этот код работает, но теперь я хочу изменить через событие текст Label1. Итак, я создаю этот код, который НЕ работает:

function set_fields(lang) {
    label1.text = Titanium.Locale.getString(lang + "social_history");
}

Как я могу получить элемент представления, сгенерированный кодом?


person bircastri    schedule 29.06.2016    source источник


Ответы (1)


При добавлении метки1 к представлению1 метка1 становится дочерним элементом представления1. Чтобы получить дочерние элементы представления, просто используйте view.getChildren() (возвращает массив дочерних элементов) или var someChild = view.children[number_of_child_in_array] для получения определенного дочернего элемента.

В вашем случае var theLabel = view1.children[0] должен дать вам label1

Документация по Appcelerator — getChildren

person gjerlow    schedule 05.08.2016