Как получить доступ к элементам внешнего вида из титанового сплава?

Я делаю мобильное приложение для Android на титановом сплаве 1.2.2.

Я хочу получить доступ к элементам, содержащимся во внешних представлениях. Итак, если я использую

var win=Alloy.createController().getView();

он сам открывает этот вид. Мне это не нужно. Я просто хочу получить доступ к элементу в этом представлении и изменить его видимость на false. Как мы можем сделать это? Спасибо заранее.


person Abhinav    schedule 22.10.2013    source источник
comment
Вы можете получить доступ к дочерним элементам вашего представления, например, если у вас есть основное представление и вы хотите получить доступ к метке внутри другого контроллера, у которого есть другое представление, вам нужно будет сделать что-то похожее на это: mainView.children[0].children[0].children[0]   -  person Mario Galván    schedule 22.10.2013


Ответы (3)


используйте Alloy.createController('name').__views для получения представлений вне контроллера, например:

// fruit.xml
<Alloy>
    <View id='opacity_view'></View>
</Alloy>

// other.js: 
the_view = Alloy.createController('fruit').__views.opacity_view
person Siwei    schedule 09.05.2015

Другое решение - экспортировать свойство, но вам понадобится ссылка на ваш контроллер, который у вас уже есть.

var win=Alloy.createController('Path to your controller');

В .js контроллера нужно:

exports.element = $.elementid;

Затем вы можете получить доступ к win.element.visible = false или любому другому свойству, которое вам нужно.

person Mario Galván    schedule 22.10.2013

controller.getView() не показывает вид на экране. Вероятно, в контроллере, который вы инициализируете, у вас есть код, похожий на этот: $.index.open() который добавляет новый вид на экран устройства.

Если вы хотите скрыть элемент при создании представления, лучше всего создать файл .tss, в который вы поместите правило: visible: false, используя либо #id, либо .class.

Дополнительные сведения см. в документации по стилям и темам Alloy.

person daniula    schedule 23.10.2013