如何从模块依赖关系(另一个模块)调用函数

how to call a function from module dependency (another module)

本文关键字:模块 另一个 调用 函数 关系 依赖      更新时间:2023-09-26

我想创建单独的模块进行分页,因为我需要它在不同的模块中重用,但我不知道如何从模块依赖(另一个模块)调用函数

这是我的主要模块:

var App = angular.module('search', ['pagination']);
App.controller('MainController', ['$scope', '$pagination' function($scope, $pagination) {
    $scope.testFunction(); //function from pagination module controller
}])

这是我的分页模块:

var App = angular.module('pagination', []);
App.controller('PaginationController', ['$scope', function($scope) {
    $scope.testFunction = function(){
        console.log("pagination module");
    }
}])

我得到错误:

Error: [$injector:unpr] Unknown provider: $paginationProvider <- $pagination

要在两个模块之间共享资源,请声明工厂或服务。

假设你有一个搜索模块:

//you inject your pagination module here
var searchModule = angular.module('search', ['pagination']);
//and you ALSO need to inject your pagination's service into your controller
searchModule.controller('MainController', ['$scope', 'paginationSvc' function($scope, paginationSvc) {
  //function from pagination module controller
  paginationSvc.testFunction();
}])

还有你的分页模块:

var pagination = angular.module('pagination', []);
//declare your pagination service here
pagination.factory('PaginationSvc', [function(){
 return {
   testFunction:testFunction
 };
 function testFunction(){
   console.log('This is from pagination module');
}
}])

也许一点plnkr会有所帮助:D

不能在控制器中注入控制器。您的pagination模块需要声明将被注入控制器中的服务、工厂或提供商。

请参阅此处的文档。

您应该创建一个分页指令并将其插入到需要的地方。您可能会从这篇文章中得到一些好主意。