簡體   English   中英

Angularamd在TypeScript控制器中注冊

[英]Angularamd in typescript controller registering

我正在使用typescript與requirejs一起建立一個角度網站。 我將其工作到可以異步加載控制器並在包含控制器的范圍內設置變量的程度:

///<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;
    })();
});

在我的模板中,我可以像這樣訪問variabele測試

{{ vm.test }}

如您所見,我必須為所有內容加上“ vm”前綴。 而且開始感覺效率低下。 我想知道是否可以將TypeScript中的控制器直接綁定到視圖,這樣我就不必將其保存在作用域中並以vm作為前綴。

我試圖簡單地:

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

但這引發了一個錯誤,一旦我的視圖加載,它就找不到appcontroller。

我知道它嘗試在AppController類之后注冊您的控制器。

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


class AppController {

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

    }
}

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM