0

Ich baue eine einfache App in appcelerator.

Ich verwende diesen Code, um ein Etikett mit Stil von TSS Datei zu erstellen.

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; 
} 

Die headerTableLabel Klasse wird in app.tss Datei deklariert

".headerTableLabel" : { 
    color : "#FFF", 
    font : { 
     fontSize : "13pt", 
     fontWeight : "Bold" 
    }, 
    textAlign: "left" 
} 

Jetzt habe ich die createHeader Funktion in meinem Global.js eingefügt werden soll, so dass in diesem Modus ich diese Funktion von allen Controllern aufrufen meiner Bewerbung.

Aber wenn ich versuche, diese Funktion zu schneiden und kopieren (das funktioniert) in Global.js Datei, habe ich einen Fehler bei $ .UI.create

Message: Uncaught ReferenceError: $ is not defined Source: var headingText = $.UI.create("Label", { [ERROR] : V8Exception: Exception occurred at common/Globals.js:5: Uncaught ReferenceError: $ is not defined

Antwort

0

Der $ Umfang existiert nicht außerhalb von Controllern.

Sie versuchen, eine Klasse außerhalb eines Controllerbereichs zu verwenden. Dies wird nicht funktionieren, da tss nicht in der App lebt. Die Dateien tss und xml werden während der Kompilierung in eine einzige Datei js kompiliert. Es sieht auch alle Ihre $-Code in der Steuerung und hängt die richtige Gestaltung, so dass Sie nicht manuell kopieren und einfügen in dynamisch erstellen Ansichten.

Da sich Ihre Datei außerhalb eines Controllers befindet, kann sie auch in einem späteren Stadium aufgerufen werden, und der Compiler weiß nicht, wo Sie tss abrufen können, da Sie in jedem Controller benutzerdefinierte Stile überschreiben und anwenden können.

Ich empfehle, einen separaten Controller nur für die Ansicht zu erstellen oder der dynamisch erstellten Ansicht in Ihrer Globals.js-Datei manuell einen neuen Stil hinzuzufügen. Ich habe einen Blog darüber geschrieben, wie man das macht und wie man damit reden kann. In meinen Apps versuche ich, das dynamische Erstellen von Ansichten zu vermeiden. https://medium.com/all-titanium/enhancing-titanium-organising-the-big-view-files-20c1237223f2#.3oaij58n9