我尝试使用TypeScript重新编写我的Angular应用程序,但它无法正常工作。 MainController不是函数吗?
我正在使用Visual Studio的TypeScript UMD编译器,我正在尝试在我在本地计算机上设置的Nodejs / Expressjs服务器中运行此应用程序。
以下是我在myApp.js中定义应用的方式:
var myApp = angular.module('myApp', []);
这是MainController.ts中的控制器:
export class MainController {
public USER_DATA: any;
constructor(private $scope: ng.IScope) {
//constructor
}
}
angular.module('myApp')
.controller('MainController', ['$scope', MainController]);
这是MainController.js中编译的JavaScript的一小部分:
(function (factory) {
if (typeof module === 'object' && typeof module.exports === 'object') {
var v = factory(require, exports); if (v !== undefined) module.exports = v;
}
else if (typeof define === 'function' && define.amd) {
define(["require", "exports", "MyAppExports"], factory);
}
})(function (require, exports) {
"use strict";
var MainController = (function () {
function MainController($scope) {
var _this = this;
}
return MainController;
}());
exports.MainController = MainController;
angular.module('myApp')
.controller('MainController', ['$scope', MainController]);
});
这是index.html ...
<html>
<body ng-app="myApp">
...
<div class="container" ng-controller="MainController">
<a href="#">Notifications <span class="badge">{{USER_DATA.notifications.length}}</span></a>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.js"></script>
<script src="myApp.js"></script>
<script src="MainController.js"></script>
</body>
</html>
为什么我收到MainController不是函数的错误?
答案 0 :(得分:1)
为什么我收到MainController不是函数的错误?
由于export
中的export class MainController {
,您的文件是JavaScript模块。
有关模块的更多信息:https://basarat.gitbooks.io/typescript/content/docs/project/modules.html
您需要模块捆绑包。有一些选择,但我(和角度2团队)推荐webpack。快速入门:https://basarat.gitbooks.io/typescript/content/docs/quick/browser.html