Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

AngularJSとTypeScript「Directiveのハローワールド」

$
0
0

AngularJSのかなり強力なディレクティブという機能のハローワールドしてみました。こいつAngularJSでDOM操作する処理をカプセル化する素敵なやつです。とりあえず、JavaScriptではなくてTypeScriptでは、どういう風にかくのかというのをつかむために、Hello worldを書いてみようと思います。

JSでのディレクティブとかについては、以下のサイトがとても参考になります。

ディレクティブの作り方

ディレクティブが持つべきプロパティを定義したng.IDirectiveインターフェースを実装します。linkとかが型指定で定義されているので、まぁ割と安心ですね。たとえば、こていの テンプレートを流し込むだけのデイxれくてぃぶなら以下のように定義できます。

/// <reference path="scripts/typings/angularjs/angular.d.ts" />

module TypeScriptAngularJSApp1 {
    // Hello worldと挿入するだけのディレクティブclass HelloWorldDirective implements ng.IDirective {
        template = "<p>Hello world</p>";
        replace = true;
    }

    // okazuki-HelloWorldで指定できるように登録する。// 第二引数は、ラムダ式で、先ほど作ったクラスをnewして返す。
    angular.module("myApp", [])
        .directive("okazukiHelloWorld", () => new HelloWorldDirective());
}

あとは、HTMLで使うだけです。何もないdivタグにokazuki-hello-worldを追加しています。

<!DOCTYPE html><htmllang="ja" ng-app="myApp"><head><metacharset="utf-8" /><title>TypeScript HTML App</title><linkrel="stylesheet"href="app.css"type="text/css" /><scriptsrc="Scripts/angular.min.js"></script><scriptsrc="app.js"></script></head><body><div okazuki-hello-world></div></body></html>

実行すると、ちゃんとディレクティブが動いていることがわかります。

f:id:okazuki:20140601143056p:plain


Viewing all articles
Browse latest Browse all 1387

Trending Articles