基本的なファイルテンプレート
hifiveでコードを書く際に使用するファイルテンプレートです。
特にコントローラやロジックを記述する際に有効です。
(基本的に、以下のテンプレート1つで1つのコントローラまたはロジックを記述します。)
- ポイント
- 全体を即時関数でくるむことにより、グローバルの汚染を防止しています
- jQueryオブジェクトをキャプチャしているので、jQueryのバージョンによるAPI非互換性が発生した場合使用するjQueryを固定できます(jQueryを使用しない場合は先頭の$と最後のjQueryをなくしてください)
- コントローラのプロパティに@memberOfタグ(JSDocタグ)をつけることで、エディタによるアウトライン表示や補完を助けます
(例えば、EclipseのJSDTでコントローラのアウトラインが表示されるようになります)
なお、@memberOfはいずれか1つのプロパティにつければエディタが認識することが多いので、他に問題がなければnameプロパティにだけつけておくのがよいでしょう。
(もしコントローラのFQCNを変えることになった時にリネーム箇所を減らすため)
* (C) 2014
*/
(function($) {
// =========================================================================
//
// 外部定義のエイリアス
//
// =========================================================================
// TODO 別ファイルで定義されている定数・変数・関数を別の変数で使用する場合にここに記述
// 例:var getDeferred = h5.async.deferred;
// =========================================================================
//
// スコープ内定数
//
// =========================================================================
// =========================================================================
//
// スコープ内静的プロパティ
//
// =========================================================================
// =============================
// スコープ内静的変数
// =============================
// TODO: このスコープで共有される変数を記述
// 例:var globalCounter = 0;
// =============================
// スコープ内静的関数
// =============================
// TODO: このスコープで共有される関数(newせずそのまま呼び出す関数)を記述
// 例:function myFunction() { /* ... */ }
// =========================================================================
//
// スコープ内クラス
//
// =========================================================================
// =============================
// クラス1
// =============================
//TODO: このスコープ内でのみ使用するクラス(newでインスタンス化して使うコンストラクタ関数等)を
//TODO: ここに記述(上部の「XYZクラス」のコメントブロックはクラスごとにつける)
// =========================================================================
//
// メインコード(コントローラ・ロジック等)
//
// =========================================================================
//TODO: コントローラやロジックを書く
/**
* @class
*/
//var controller = {
// /**
// * @memberOf myapp.controller.SampleController
// */
// __name: 'myapp.controller.SampleController'
//}
// =========================================================================
//
// 外部公開
//
// =========================================================================
//TODO: 他のファイルから参照できるようにしたいものを公開する
//h5.core.expose(controller);
//h5.u.obj.expose('sample.namespace', { obj: value });
})(jQuery);