我有两个功能,我想分享多个AngularJS控制器,但我不确定如何为原型功能执行此操作。
以前,功能是在控制器中定义的:
Array.prototype.contains = function(needle) {
...
}
这允许使用contains
方法链接任何数组。但是,放置在工厂中时这不起作用,因为服务外的任何数组都未定义contains
。
(function() {
'use strict';
angular
.module('app')
.factory('FunctionsFactory', FunctionsFactory);
function FunctionsFactory() {
return {
contains: contains,
exactlyContains: exactlyContains
};
...
跨多个AngularJS控制器共享这些类型的函数的最佳方法是什么?
答案 0 :(得分:6)
拥有此类全局常用功能的最佳位置是“运行块”。它们是Angular中最接近Main方法的东西。
angular.module('myApp', [])
.run(function(){
Array.prototype.contains = function(){
console.log('array contains');
};
});
运行块在创建注入器后执行,并用于启动应用程序。