Cuo*_*.Ho 108 javascript angularjs angularjs-service
这是我使用angularjs的演示,用于创建服务文件,以及向控制器添加服务.
我的演示有两个问题:
<script src="HomeController.js">在<script src="MyService.js">我收到此错误之前,错误:[ng:areq]参数'HomeController'不是函数,未定义
<script src="MyService.js">之前<script src="HomeController.js">收到以下错误,错误:[$ injector:unpr]未知提供者:MyServiceProvider < - MyService
我的来源:
档案Index.html:
<!DOCTYPE html>
<html >
<head lang="en">…</head>
<body ng-app="myApp">
…
<div ng-controller="HomeController">
<div ng-repeat="item in hello">{{item.id + item.name}}</div>
</div>
<script src="Scripts/angular.js"></script>
<script src="Scripts/angular-route.js"></script>
<!-- App libs -->
<script src="app/app.js"></script>
<script src="app/services/MyService.js"></script>
<script src="app/controllers/HomeController.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
档案HomeController.js:
(function(angular){
'use strict';
var myApp = angular.module('myApp',[]);
myApp.controller('HomeController',function($scope,MyService){
$scope.hello=[];
$scope.hello = MyService.getHello();
});
})(window.angular);
Run Code Online (Sandbox Code Playgroud)
档案MyService.js:
(function(angular){
'use strict';
var myApp = angular.module('myApp',[]);
myApp.service('MyService', function () {
var hello =[ {id:1,name:'cuong'},
{id:2,name:'nguyen'}];
this.getHello = function(){
return hello;
};
});
})(window.angular);
Run Code Online (Sandbox Code Playgroud)
bml*_*ite 208
这会创建一个新的模块/应用程序:
var myApp = angular.module('myApp',[]);
Run Code Online (Sandbox Code Playgroud)
这会访问已创建的模块(请注意省略第二个参数):
var myApp = angular.module('myApp');
Run Code Online (Sandbox Code Playgroud)
由于您在两个脚本上使用第一种方法,因此基本上覆盖了先前创建的模块.
在加载的第二个脚本上,使用var myApp = angular.module('myApp');.
Jor*_*ego 64
我曾经历过这个错误.我的问题是我没有添加FILE_NAME_WHERE_IS_MY_FUNCTION.js
所以我的file.html从未找到我的功能所在
一旦我添加"file.js",我解决了问题
<html ng-app='myApp'>
<body ng-controller='TextController'>
....
....
....
<script src="../file.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
AA1*_*Kas 21
还要确保在body的结束标记之前,在index.html底部的脚本标记内定义控制器.
<!-- build:js({.tmp,app}) scripts/scripts.js -->
<script src="scripts/app.js"></script>
<script src="scripts/controllers/main.js"></script>
<script src="scripts/controllers/Administration.js"></script>
<script src="scripts/controllers/Leaderboard.js"></script>
<script src="scripts/controllers/Login.js"></script>
<script src="scripts/controllers/registration.js"></script>
Run Code Online (Sandbox Code Playgroud)
如果你的specific.html,specific.js和app.js页面上的所有内容拼写"正确"(相同),这应该可以解决您的问题.
每当我错过注射和功能列表之间的","时,几次发生在我身上
app.controller('commonCtrl', ['$scope', '$filter',function($scope,$filter) {
}]);
Run Code Online (Sandbox Code Playgroud)
我也遇到过这个错误,但在我的情况下,这是因为控制器命名约定.我声明了controller: "QuestionController",.state但在控制器定义中,我声明了它
yiiExamApp.controller('questionController' ...
Run Code Online (Sandbox Code Playgroud)
但它应该是
yiiExamApp.controller('QuestionController' ...
Run Code Online (Sandbox Code Playgroud)
希望这有助于面对这个错误的人因为这个愚蠢的错误我浪费了4小时来识别它.
我也遇到了同样的错误,我的修复方法是将我的子模块包含在主模块数组中。
var myApp = angular.module('myApp', ['ngRoute', 'childModuleName']);
Run Code Online (Sandbox Code Playgroud)
如果 ALL ELSE 失败并且您像我一样在 MEAN 堆栈上本地运行 gulp ......只需停止并再次服务!我正在小心翼翼地检查你所有帖子中的所有内容,但无济于事,直到我简单地重新运行 gulp serve。
我得到了同样的错误。我像这样定义了java脚本
<script src="controllers/home.js" />
Run Code Online (Sandbox Code Playgroud)
然后我改成了这个
<script src="controllers/home.js"></script>
Run Code Online (Sandbox Code Playgroud)
在此之后,我的问题就解决了。
| 归档时间: |
|
| 查看次数: |
233063 次 |
| 最近记录: |