我正在使用typescript设置一个角度和requirejs的网站。 我让它工作到一个点,我可以异步加载我的控制器并在范围内设置一个varbele来保持我的控制器:
///<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;
})();
});
在我的viewtemplate中,我可以像这样访问变量测试
{{ vm.test }}
正如你所看到的,我必须用&#34; vm。&#34;它开始觉得有点低效。我想知道是否可以将typescript中的控制器直接绑定到视图中,所以我不必将其保存在范围内并用vm作为前缀。
我试着简单地说:
<div ng-controller="AppController">
{{ test }}
</div>
但是这会引发一个错误,一旦我的视图加载,它就无法找到appcontroller。
答案 0 :(得分:0)
我知道它在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);
});