Титановый сплав: может ли представление xml иметь вложенные представления с одним и тем же идентификатором?

Я изучаю приложение Codestrong 2012 и пытаюсь заставить его работать с SDK 3.1.3.

Я думал, что представления xml должны иметь уникальный идентификатор, но я нашел это:

//main.xml
<Alloy>
    <View id="container">
        <View id="content">  </View>
        <!-- ... -->
    </View>
</Alloy>

а также

//drawer.xml
<Alloy>
    <View id="container">
        <!-- ... -->
    </View>
</Alloy>

затем в контроллере mains.js есть фрагмент кода, который делает:

var d = Alloy.createController('drawer');
    // ...
    $.container.add(d.getView());

Почему в файле drawer.xml есть представление с id=container, добавленное в main.xml, в котором также есть представление с id=container ?

Это нормально?

как получить доступ ко второму основному контроллеру формы #container?


person Fernando Fabreti    schedule 04.04.2014    source источник


Ответы (1)


В случае, когда вы описываете, два разных представления динамически объединяются вместе, но идентификаторы доступны через разные объекты: $ для main.xml и d для drawer.xml.

Так, например, вы можете получить доступ:

  • <View id="container"> из drawer.xml:
    d.container

  • <View id="content"> из файла main.xml:
    $.content

  • <View id="container"> из файла main.xml:
    $.container

person daniula    schedule 04.04.2014
comment
То есть динамическое объединение представлений не нарушает никаких правил id в представлениях Titanium? Я имею в виду, это не похоже на HTML? - person Fernando Fabreti; 04.04.2014
comment
Можно ли сделать что-то вроде $.container.container? Ok. Думаю, попробую на отладчике. - person Fernando Fabreti; 04.04.2014