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

标签 javascript jquery angularjs

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

相关文章:

javascript - 使用 Angular 和 ng-repeat 向 HTML DIV 添加属性

JavaScript 函数参数和作用域

javascript - Google Maps API - 为什么标签不与标记一起动画?

javascript - 在 jquery 中返回 span 的空值?

javascript - 在可编辑网格上,当用户按 Tab 键时将光标移动到同一列

javascript - href 没有按预期工作

javascript - 如何获取带有集合和模型 ID 的 URL

javascript - Reactjs 路由器匹配回调参数始终未定义

jquery - 简单的 jQuery 显示更多/更少的内容

javascript - 如何将此功能转变为符合 Angular 功能?