当添加一个服务和一个过滤器或多个服务时,我在做什么导致未知提供者
What am I doing thats causing Unknown Provider when Adding both a service and a filter or multiple services
这很可能是因为我缺乏经验,忽略了一些基本的东西,但介于SO、angularjs教程和指南以及谷歌搜索之间,我找不到可以遵循的解释或示例。
我已经成功地创建了一个工厂,并在我的控制器和过滤器中使用了它,但只有一个或另一个。当我尝试将两者都添加到模块中时,我会得到Error: Unknown provider: memberFactoryProvider <- memberFactory
我的代码如下,但我有一些问题包括:
1。当将工厂和服务(或多个工厂/过滤器)添加到一个模块时,是否足以以与使用单个工厂相同的方式创建它们,即。如果我有很多工厂都是这样的:
'use strict';
angular.module('testApp', [])
.factory('factory1', function () {
var obj = {};
obj.text = "This is a test";
return obj;
});
angular.module('testApp', [])
.factory('factory2', function () {
var obj = {};
obj.text = "This is another test";
return obj;
});
使用angular.module('testApp', ['factory1', 'factory2']);
在app.js中插入这两个是否足够
2.我在网上注意到一些帖子,当创建过滤器/工厂时,他们会附加应用程序名称,例如:
angular.module('testApp', [])
.factory('testApp.factory1', function () {
var obj = {};
obj.text = "This is a test";
return obj;});
这是必需的还是个人偏好?
最后,下面是我的所有代码,如上所述,所有代码都是单独工作的,但当我试图将它们组合在一起时,我会收到上面提到的错误,任何建议或帮助都将不胜感激
index.html
<!DOCTYPE html>
<html data-ng-app="testApp">
<head>
<title>prototype</title>
<script type="text/javascript" src="jquery-2.0.3.min.js"></script>
</head>
<body>
<div data-ng-controller="myController">
<br/>
<div data-ng-repeat="n in [] | range:5">
<div data-ng-repeat="">{{test}}</div>
</div>
</div>
<br/>
<br/>
<script type="text/javascript" src="angular.min.js"></script>
<script type="text/javascript" src="js/app.js"></script>
<script type="text/javascript" src="js/services.js"></script>
<script type="text/javascript" src="js/filters.js"></script>
<script type="text/javascript" src="js/controllers.js"></script>
</body>
</html>
App.js
'use strict';
angular.module('testApp', ['memberFactory', 'range']);
services.js
'use strict';
angular.module('testApp',[])
.factory('memberFactory', function(){
var obj = {};
obj.text = "This is a test";
return obj;
});
filters.js
'use strict';
angular.module('testApp',[]).filter('testApp.range', function() {
return function(input, total) {
total = parseInt(total);
for (var i=0; i<total; i++)
input.push(i);
return input;
};
});
控制器.js
function myController($scope, memberFactory){
$scope.test= memberFactory.text;
}
首先你应该做这个
angular.module('testApp', [])
.factory('factory1', function () {
var obj = {};
obj.text = "This is a test";
return obj;
})
.factory('factory2', function () {
var obj = {};
obj.text = "This is another test";
return obj;
});
您不应该创建两个同名模块。
我认为这个
angular.module('something', ['here', 'is', 'for modules', 'only'];
我想你想做的就是这个。
你有两个模块?
var helpers = angular.module('helpers', []);
那么你应该做
var app = angular.module('app', ['helpers']);
然后你将可以访问所有连接到助手和应用的工厂
举个例子,如果你想把过滤器放在另一个文件中,有几种方法可以做到
var filters = angular.module('filters', []);
filters.filter('name', func...);
然后你把它包含在你的应用程序中,就像一样
var app = angular.module('app', ['helpers', 'filters']);
相关文章:
- 从AngularJS中的另一个文件中的控制器访问服务
- 在http服务单元测试中使用request-js时,chai.request不是一个函数
- AngularJS服务函数调用另一个函数
- 在一个服务中引用多个API调用(Angular)
- 在一个控制器中更新服务变量,并在另一个控制器 - Angular JS中使用更新的值
- AngularJS - 一个文件中的控制器和服务
- 在angularJS中合并来自一个服务的两个数组
- 使用DOM中的信息创建一个控制器/服务来持久化数据
- 通过javascript调用一个C#windows服务函数
- 一个在线服务,我可以查询一个随机的历史人物的名字
- Azure移动服务;插入到另一个表&呼叫'插入'剧本
- 需要将服务/工厂存储为一个值
- 如何在使用typescript的另一个服务中的一个角度服务中使用$rootScope define
- 为一个像球一样的凌空抽射服务
- 如何使用Angular 2服务提供包含指向另一个资源的链接/ids的资源集合
- 当我把服务放在另一个文件上时,Angular会抛出一个错误
- 在Angular 2中的另一个服务中注入自定义服务
- 使用Web服务根据对另一个下拉框的选择填充第二个下拉框以获取信息
- Wordpress创建一个自定义休息服务
- 它有一个库或Web服务,可以为我的javascript应用程序提供夏令时数据