gpt4 book ai didi

javascript - 将一个模块的工厂提供给另一个模块

转载 作者:行者123 更新时间:2023-12-03 04:51:51 26 4
gpt4 key购买 nike

我刚刚开始使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com