我有两个函数想在多个 AngularJS Controller 之间共享,但我不确定如何为原型(prototype)函数执行此操作。
以前,函数是在 Controller 中定义的:
Array.prototype.contains = function(needle) {
...
}
这允许使用 contains
方法链接任何数组。但是,这在放置在工厂中时不起作用,因为 contains
对于服务外的任何数组都是未定义的。
(function() {
'use strict';
angular
.module('app')
.factory('FunctionsFactory', FunctionsFactory);
function FunctionsFactory() {
return {
contains: contains,
exactlyContains: exactlyContains
};
...
在多个 AngularJS Controller 之间共享这些类型的函数的最佳方式是什么?
最佳答案
拥有此类全局通用功能的最佳位置是运行 block 。它们是 Angular 中最接近 Main 方法的东西。
angular.module('myApp', [])
.run(function(){
Array.prototype.contains = function(){
console.log('array contains');
};
});
运行 block 在注入(inject)器创建后执行,并用于启动应用程序。
关于angularjs - 如何在 AngularJS 中共享原型(prototype)函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27827681/