我开始学习 AngularJs,所以我通过分别创建 View 、服务文件和 Controller 文件开始了这种方式,如下所示:
<html ng-app="myApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script src="ServicesTut.js"></script>
<script src="ControllerTut.js"></script>
</head>
<body>
<div class="container">
<div ng-controller="CalculatorController">
Enter a number:
<input type="number" ng-model="number">
<button ng-click="findSquare()">Square</button>
<div>{{answer}}</div>
</div>
</div>
</body>
</html>
这是我的服务文件 --- ServicesTut.js"
var CalculatorService = angular.module('CalculatorService', [])
app.service('Calculator', function () {
this.square = function (a) { return a*a};
});
这是我的 Controller 文件 --- ControllerTut.js
var myApp = angular.module('myApp', ['CalculatorService']);
app.controller('CalculatorController', function ($scope, Calculator) {
$scope.findSquare = function () {
$scope.answer = Calculator.square($scope.number);
}
});
在我的浏览器上启动代码时,我收到以下错误消息:
Error: Argument 'CalculatorController' is not a function, got undefined
请帮助我!
最佳答案
在您的 ServicesTut.js
中,您应该使用 CalculatorService
变量而不是 app
,这就是为什么服务没有在CalculatorService
模块。
var CalculatorService = angular.module('CalculatorService', [])
app.service('Calculator', function () {
应该是
var CalculatorService = angular.module('CalculatorService', [])
CalculatorService.service('Calculator', function () {
在 Controller 中再次重复同样的事情,在注册 Controller 时使用 myApp
而不是 app
。
var myApp = angular.module('myApp', ['CalculatorService']);
myApp.controller('CalculatorController', function ($scope, Calculator) {
关于javascript - AngularJs:参数不是未定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32462155/