开始使用 TypeScript。我可以在没有 TypeScript 的情况下进行此操作,但在转换时出现错误。
我有以下 Controller :
"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 错误:
Error: ng:areq Bad Argument Argument 'BaHomeController' is not aNaNunction, got undefined
我读到这意味着 Angular 可能无法找到 Controller 。使用这种新语法,我如何验证 Controller 名称是否正确?
PS 什么是 aNaNunction?
最佳答案
您在某处缺少这样的行(假设您尚未注册该模块):
angular.module('blogApp', []).controller('BaHomeController', app.blogApp.BaHomeController);
关于javascript - 参数 '[controllerName]' 不是 NaNunction,在转换为 TypeScript 时未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35000458/