我对angularJS完全陌生,所以这对我来说是第一次。我已经初始化了angular应用程序,创建了一个控制器,直到一切正常为止。当我在另一个文件中创建工厂时,问题就开始了,然后我不知道如何在控制器中注册它。当我像引用工厂一样引用控制器时,得到Error: $injector:unpr
Unknown Provider
。我在做什么错了?
var app = angular.module("app", []);
app.controller("appCtrl", function($http, appFactory) {
var that = this;
// Some stuff
}
这是工厂的其他文件。
var app = angular.module("app");
app.factory("appFactory", function() {
var factory = {};
someData = [];
factory.getData = function() {
return someData;
};
return factory;
});
答案 0 :(得分:0)
不要再次创建模块。从工厂文件代码中本质上删除此行“ var app = angular.module(“ app”);“。并使用getter语法创建服务。 HTML文件
<html>
<head>
<title>title</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.js"> </script>
<script src="app.js" /> </script>
<script src="service.js" /> </script>
</head>
<body ng-app="myApp" ng-controller="myCtrl">
{{text}}
</body>
控制器
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, myserv) {
$scope.text = myserv.myFunc();
});
服务/工厂
app.service('myserv', function() {
this.myFunc = function () {
return 'abc';
}
});