我想为分页创建单独的模块,因为我需要它在不同的模块中重用,但我不知道如何从模块依赖(另一个模块)调用函数
这是我的主要模块:
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
答案 0 :(得分:1)
要跨两个模块共享资源,请声明工厂或服务。
假设您有一个搜索模块:
//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');
}
}])
也许little plnkr会有所帮助:D
答案 1 :(得分:0)
您无法在控制器中注入控制器。您的pagination
模块需要声明将在您的控制器中注入的服务或工厂或提供商。
答案 2 :(得分:0)
您应该创建一个分页指令并将其插入您需要的位置。您可以从this post获得一些好主意。