这很可能是由于我缺乏经验并且忽略了一些基本的东西,但是在 SO、angulajs教程和指南以及谷歌搜索之间,我找不到可以遵循的解释或示例。
我已经成功地创建了一个工厂并在我的控制器和过滤器中使用它,但只有一个或另一个。当我尝试将两者都添加到我得到的模块时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;
});
是否足以在 app.js 中使用这两者angular.module('testApp', ['factory1', 'factory2']);
2.我注意到网上的一些帖子在创建过滤器/工厂时会附加应用名称,例如:
angular.module('testApp', [])
.factory('testApp.factory1', function () {
var obj = {};
obj.text = "This is a test";
return obj;});
这是必需的还是个人喜好?
最后下面是我的所有代码,如上所述,所有代码都可以单独工作,但是当我尝试将它们结合起来时,我得到了上面提到的错误,非常感谢任何建议或帮助
索引.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>
应用程序.js
'use strict';
angular.module('testApp', ['memberFactory', 'range']);
服务.js
'use strict';
angular.module('testApp',[])
.factory('memberFactory', function(){
var obj = {};
obj.text = "This is a test";
return obj;
});
过滤器.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;
}