0

appceleratorで簡単なアプリケーションを構築しています。

このコードを使用して、tssという形式のラベルを作成します。

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

headerTableLabelクラスは

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

app.tssファイルで宣言され、このモードでは、私はすべてのコントローラからこの関数を呼び出すことができますので、今私は、私のGlobal.jsにcreateHeader機能を挿入したいです私のアプリケーションの。

しかし、私はカットとGlobal.jsファイル(動作する)この機能をコピーしようとすると、私は$ .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

答えて

0

$スコープが存在しない時にエラーが発生していますコントローラの外側にある。

コントローラスコープの外でクラスを使用しようとしています。 tssはアプリ内に存在しないため、これは機能しません。 tssxmlの両方のファイルは、コンパイル時に1つのjsファイルにコンパイルされます。また、コントローラー内のすべての$コードを見て、正しいスタイリングを貼り付けるので、手動でコピーして動的に作成するビューに貼り付ける必要がありません。

あなたのファイルはコントローラの外にあるため、後のスタジアムでも呼び出すことができ、コンパイラはtssをどこから取得するのかわかりません。すべてのコントローラでカスタムスタイリングをオーバーライドして適用できます。

ビュー用に別のコントローラを作成するか、Globals.jsファイルの動的に作成されたビューにスタイリングを手動で追加することをおすすめします。私はそれを行う方法とあなたがそれにどのように話すことができるかについてのブログを書いています。私のアプリでは、ビューを動的に作成しないようにしています。 https://medium.com/all-titanium/enhancing-titanium-organising-the-big-view-files-20c1237223f2#.3oaij58n9

関連する問題