【发布时间】:2016-01-25 19:12:19
【问题描述】:
TypeScript 入门。我在没有 TypeScript 的情况下也能正常工作,但在转换时出现错误。
我有以下控制器:
"use strict"
module app.blogApp {
class BaHomeController {
entries: any[];
static $inject = ["$http"];
constructor(
private $http
) {
this.loadEntries();
}
private loadEntries() {
this.$http.get("api/blogEntries").then(function(response) {
this.entries = response.data;
});
}
}
}
转译为:
"use strict";
var app;
(function (app) {
var blogApp;
(function (blogApp) {
var BaHomeController = (function () {
function BaHomeController($http) {
this.$http = $http;
this.loadEntries();
}
BaHomeController.prototype.loadEntries = function () {
this.$http.get("api/blogEntries").then(function (response) {
this.entries = response.data;
});
};
BaHomeController.$inject = ["$http"];
return BaHomeController;
})();
})(blogApp = app.blogApp || (app.blogApp = {}));
})(app || (app = {}));
通过 HTML 加载:
<section data-ng-controller="BaHomeController as vm"></section>
为什么会产生 Angular 错误:
错误:ng:areq 不好的论点 参数 'BaHomeController' 不是 NaNunction,未定义
我读到这意味着 Angular 可能无法找到控制器。使用这种新语法,如何验证控制器名称是否正确?
PS 什么是 aNaNunction?
【问题讨论】:
-
您需要发布打字稿
-
你实际在哪里注册控制器?
-
糟糕。添加它@CHBuckingham
-
你能澄清@RyanCavanaugh 吗?我使用控制器作为语法,所以路由定义了模板。模板指定使用哪个控制器,上面的控制器定义应该定义控制器
标签: javascript angularjs typescript