我刚刚开始使用 Angularjs,在调用其他模块中定义的工厂时遇到问题。实际上,我需要清理代码,因此我必须在一个 js 文件中构建所有功能,并且必须在定义 Controller 的主 js 文件中使用它们。我编写了一个简单的代码来理解这个问题。提前致谢
以下是 Html 文件:-
<!DOCTYPE html>
<html>
<head>
<script data-require="angular.js@1.1.5" data-semver="1.1.5" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="function.js"></script>
<script src="script.js"></script>
</head>
<body ng-app="MyServiceModuleOne">
<div ng-controller="TestController">
<button type="button" ng-click="getFn()"> Test </button>
</div>
</body>
</html>
以下是 script.js 文件
var myModule= angular.module('MyServiceModuleTwo',['MyServiceModuleOne']);
myModule.controller('TestController', ['$scope', 'notify', function($scope, notify){
$scope.getFn = function() {
notify.sampleFun();
}
}]);
以下是 function.js 文件:-
var myModule = angular.module('MyServiceModuleOne', []);
myModule.factory('notify', function() {
return {
sampleFun: function() {
alert('hi');
}
};
});
最佳答案
需要进行一些更改。
您正在将 MyServiceModuleOne
引用为根模块,但您引用的 Controller 位于 MyServiceModuleTwo
中。
因此,将您的 ng-app 从 MyServiceModuleOne
更改为 MyServiceModuleTwo
。
我已经更新了 plnkr
关于javascript - 将一个模块的工厂提供给另一个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42625169/