如何在 AngularJS 中共享原型函数?
How to share prototype functions in AngularJS?
我有两个函数想在多个 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 控制器之间共享这些类型的功能的最佳方式是什么?
拥有这种全球通用功能的最佳地点是运行 Blocks。它们是 Angular 中最接近 Main 方法的东西。
angular.module('myApp', [])
.run(function(){
Array.prototype.contains = function(){
console.log('array contains');
};
});
运行 块在注入器创建后执行并用于启动应用程序。
我有两个函数想在多个 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 控制器之间共享这些类型的功能的最佳方式是什么?
拥有这种全球通用功能的最佳地点是运行 Blocks。它们是 Angular 中最接近 Main 方法的东西。
angular.module('myApp', [])
.run(function(){
Array.prototype.contains = function(){
console.log('array contains');
};
});
运行 块在注入器创建后执行并用于启动应用程序。