我正在尝试使用TypeScript设置AngularJS项目,但我遇到了以下错误:
错误:[ng:areq] http://errors.angularjs.org/1.5.5/ng/areq?p0=MovieCtrl&p1=not%20aNaNunction%2C%20got%20undefined
我也使用watchify将我的app.ts编译为bundle.js
在我的索引中,我使用ng-app
引导Angular,我包含一个html文件(加载正常),然后导入我身体底部的外部文件。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>TypeScript HTML App</title>
<link rel="stylesheet" href="app.css" type="text/css" />
</head>
<body ng-app="app">
<div ng-include="'movie.html'"></div>
<!--Libraries-->
<script src="Scripts/angular.min.js"></script>
<script src="bundle.js"></script>
<!--Controllers-->
<script src="app/movieCtrl.js"></script>
</body>
</html>
在movie.html
我有:
<div ng-controller="MovieCtrl as vm"></div>
这是movieCtrl文件:
class MovieCtrl {
// fields
// constructor
// propperties
// functions
}
angular
.module('app')
.controller('Movie',
MovieCtrl);
最后我的app.ts
angular.module("app", []);
为什么MovieCtrl会抛出错误?
答案 0 :(得分:0)
//答案//
再次(再次)查看PluralSight课程后,我发现了错误。
在movieCtrl文件中,我将类定义为MovieCtrl
,但在我的模块注册中,我将其定义为Movie
。改变:
angular
.module('app')
.controller('Movie',
MovieCtrl);
到
angular
.module('app')
.controller('MovieCtrl',
MovieCtrl);
修正了错误。
答案 1 :(得分:0)
为我解决的问题是关闭控制器。很简单,但要修理它。
最后添加: } 或)
.controller('UserCtrl', function (auth, $scope) {
$scope.auth = auth;
$scope.$watch('auth.profile.name', function(name) {
if (!name) {
return;
}
$scope.message.text = 'Welcome ' + auth.profile.name + '!';
});
结果如此:
.controller('UserCtrl', function (auth, $scope) {
$scope.auth = auth;
$scope.$watch('auth.profile.name', function(name) {
if (!name) {
return;
}
$scope.message.text = 'Welcome ' + auth.profile.name + '!';
});
})