如何在AngularJS中共享原型函数?
我想在多个AngularJS控制器之间共享两个函数,但我不确定如何为原型函数实现这一点 以前,功能是在控制器中定义的:如何在AngularJS中共享原型函数?,angularjs,angular-services,Angularjs,Angular Services,我想在多个AngularJS控制器之间共享两个函数,但我不确定如何为原型函数实现这一点 以前,功能是在控制器中定义的: Array.prototype.contains = function(needle) { ... } 这允许使用contains方法链接任何数组。但是,当放置在工厂中时,这不起作用,因为服务之外的任何数组都未定义contains (function() { 'use strict'; angular .module('app') .factory('
Array.prototype.contains = function(needle) {
...
}
这允许使用contains
方法链接任何数组。但是,当放置在工厂中时,这不起作用,因为服务之外的任何数组都未定义contains
(function() {
'use strict';
angular
.module('app')
.factory('FunctionsFactory', FunctionsFactory);
function FunctionsFactory() {
return {
contains: contains,
exactlyContains: exactlyContains
};
...
跨多个AngularJS控制器共享此类函数的最佳方式是什么?拥有此类全局通用函数的最佳位置是运行块。它们在角度上与主要方法最接近
angular.module('myApp', [])
.run(function(){
Array.prototype.contains = function(){
console.log('array contains');
};
});
运行块在创建注入器后执行,用于启动应用程序。也许我不理解您的问题,但对于共享功能,我认为最好的方法是将此功能放入单独的服务中,然后将此服务注入多个控制器。