0

typescriptを使用してrequirejsとともにAngularでサイトを設定しています。コントローラーを非同期にロードし、コントローラーを保持するスコープに変数を設定できるようになりました。

///<reference path="./../typings/tsd.d.ts" />
import App = require("../Start");

App.application.app.register.controller("AppController",($scope: ng.IScope) => {
    $scope["vm"] = new AppController($scope);
});


class AppController {

    public test: string = "tedast";
    constructor(scope: ng.IScope) {

    }
}

次のようにJavaScriptにコンパイルされます。

define(["require", "exports", "../Start"], function (require, exports, App) {
    App.application.app.register.controller("AppController", function ($scope) {
        $scope["vm"] = new AppController($scope);
    });
    var AppController = (function () {
        function AppController(scope) {
            this.test = "tedast";
        }
        return AppController;
    })();
});

そして、私のビューテンプレートでは、変数テストに次のようにアクセスできます

{{ vm.test }}

ご覧のとおり、すべてにプレフィックス「vm」を付ける必要があります。少し効率が悪いと感じ始めています。タイプスクリプトのコントローラーをビューに直接バインドできるかどうかを知りたいので、スコープに保存してvmの前に付ける必要はありません。

私は単純にしようとしました:

<div ng-controller="AppController">
      {{ test }}
</div>

しかし、ビューが読み込まれるとappcontrollerが見つからないというエラーがスローされます。

4

1 に答える 1