2016-04-21 3 views
0

Gemäß der Dokumentation arbeiten, ist es möglich:Titanium wenn Attribut und Alloy.Globals nicht

Im XML-Markup, fügen Sie das Attribut, wenn auf ein Element, und weisen Sie auf die Eigenschaft der createController weitergegeben () Methode. Setzen Sie den Eigenschaftsnamen mit dem Namespace $ .args voran. Basierend auf der an die Methode übergebenen Eigenschaft zeigt die Anwendung eine andere Bezeichnung an.

So bedeutet dies, dass, wenn ich gesagt:

<Label if="Alloy.Globals.property" color="blue">Foobar</Label 

Wont Arbeit ?? Momentan verwende ich nicht die createController-Methode, da sie in der XML-Datei durch ein Require-Tag hinzugefügt wird. Gibt es eine Möglichkeit, dies zu tun?

+1

Stellen Sie sicher, dass 'Alloy.Globals.property' festgelegt ist, bevor die Ansicht geöffnet wird. – Shawn

Antwort

2

Wie Sie in der docs sehen können, gibt es einige Beispiele.

Eines davon:

<Alloy> 
    <Window> 
     <Label if="$.args.fooBar" color="blue">Foobar</Label> 
     <Label if="$.args.fooBaz" color="red">Foobaz</Label> 
    </Window> 
</Alloy> 

Also ja, wird dies nur funktionieren. Solange die von Ihnen angegebene Eigenschaft beim Rendern bereits festgelegt ist. Sobald sich Ihre Variable ändert, während die Ansicht geöffnet ist, wird sie nicht aktualisiert. Dafür benötigen Sie data binding