javascript - 参数 '[controllerName]' 不是 NaNunction,在转换为 TypeScript 时未定义

标签 javascript angularjs typescript

开始使用 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/

相关文章:

Angular 2 OpaqueToken 与 Angular 4 InjectionToken

javascript - 单元测试 AngularJS : Uncaught Error: [$injector:nomod] Module is not available! 和 ReferenceError:运行 Karma 时未定义模块

javascript - 使用 Selenium 和 PhantomJS 测试 AngularJS 应用程序

AngularJS - 如何在多个值上设置 $watch

node.js - 运行 Mocha 测试时更改默认的 TypeScript 配置文件

带有函数的 Typescript 联合类型

javascript - 为什么我不能通过 nodemon 使用 mocha?

javascript - 如何从事件监听器中的 Chrome 控制台中提到的某些类别中删除所有事件监听器

javascript - 按类对 div 元素进行排序 (jQuery/Javascript)

javascript - 如何在 Puppeteer 中使用此日期选择器