Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从模块依赖项(另一个模块)调用函数_Javascript_Angularjs_Angularjs Scope - Fatal编程技术网

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

Javascript 如何从模块依赖项(另一个模块)调用函数,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我想为分页创建单独的模块,因为我需要它在不同的模块中重用,但我不知道如何从模块依赖项(另一个模块)调用函数 这是我的主要模块: var App = angular.module('search', ['pagination']); App.controller('MainController', ['$scope', '$pagination' function($scope, $pagination) { $scope.testFunction(); //function from

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

这是我的主要模块:

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");
    }
}])
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');
}
}])
我得到一个错误:

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

错误:[$injector:unpr]未知提供程序:$paginationProvider无法在控制器中插入控制器。您的
分页
模块需要声明将注入控制器的服务或工厂或提供商


您应该创建分页指令,并将其插入需要的位置。您可能会从中得到一些好主意。

要跨两个模块共享资源,请声明工厂或服务

假设您有一个搜索模块:

//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 App = angular.module('pagination', []);

App.controller('PaginationController', ['$scope', function($scope) {
    $scope.testFunction = function(){
        console.log("pagination module");
    }
}])
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');
}
}])

a可能会有所帮助:D

您尚未声明名为
$pagination
的服务(提供者)。那在哪里?你不能注射不存在的东西。为什么您要在分页模块中创建一个控制器,但却被注入到另一个控制器中?您能否发布一些示例来说明如何执行此操作?这里有很多:。不要在分页模块中创建控制器,而是创建一个服务/工厂(并将其命名为其他名称…角度模块通常以“$”开头,建议不要自己创建