AngularJs在整个应用程序中使用javascript函数
我有一些主要功能,我在我的webApp中到处使用它。这些函数是纯JS的,与AngularJs无关,我希望能够在我的应用程序中的任何地方使用它们,因为它们是执行简单任务的助手函数 这是我的一个函数示例:AngularJs在整个应用程序中使用javascript函数,javascript,angularjs,Javascript,Angularjs,我有一些主要功能,我在我的webApp中到处使用它。这些函数是纯JS的,与AngularJs无关,我希望能够在我的应用程序中的任何地方使用它们,因为它们是执行简单任务的助手函数 这是我的一个函数示例: function _removeArray(obj, id) { //Remove object from array for(d=0; d<obj.length;d++){ if(obj[d].id == id){ obj.splice(d,
function _removeArray(obj, id) { //Remove object from array
for(d=0; d<obj.length;d++){
if(obj[d].id == id){
obj.splice(d,1);
return obj;
}
};
};
函数_removeArray(obj,id){//从数组中删除对象
对于(d=0;d我经常做的是创建一个全局“helper”对象:
如果有一大堆函数和变量挂在全局范围内,那么这不是一个好主意——但我认为有一个,所有函数和变量嵌套在其中,是非常有用的。我经常做的是创建一个全局“helper”对象:
如果有一大堆函数和变量挂在全局范围内,那么这不是一个好主意——但我认为有一个,所有函数和变量都嵌套在其中,是非常有用的。你可以使用一个,这是许多JS库(比如和Angular本身)所使用的做,尽管这基本上是工厂/服务允许您做的。您可以使用a,这是许多JS库(如和Angular本身)所做的,尽管这基本上是工厂/服务允许您做的。如果您不使用任何模块系统和模块绑定器(如webpack、browserify)或模块加载器(像systemjs)那么是的。对于angular1来说,这是主要的工作方式
在我的应用程序中,我刚刚创建了一些工厂,如arrayUtils
,numberUtils
,domUtils
,dateUtils
,并在需要任何函数时注入它们
例如:
date-utils-module.js
(function () {
'use strict';
/* @ngdoc object
* @name components.dateUtils
* @description
*
*/
angular
.module('components.dateUtils', [
'angularMoment'
]);
}());
date-utils-factory.js
(function () {
'use strict';
/**
* @ngdoc service
* @name components.dateUtils.factory:dateUtils
*
* @description
*
*/
angular
.module('components.dateUtils')
.factory('dateUtils', dateUtilsFactory);
function dateUtilsFactory(moment) {
var dateUtils = {
range: range
};
return dateUtils;
/**
* Возвращает строку, содержащую текстовое представления диапазона дат.
* Например (считая, что сейчас 2015 год):
* <pre>
* чт, 31 декабря, 17:30 – ∞
∞ – пт, 1 января 2016, 21:30
чт, 31 декабря, 17:30 – пт, 1 января 2016, 09:00
чт, 31 декабря, 17:30 – 21:30
* </pre>
* @param date1 первая дата
* @param date2 вторая дата
*
* @returns строка с диапазоном дат.
*/
function range(date1, date2) {
var now = moment(),
m1 = moment(date1 || null),
m2 = moment(date2 || null),
t1 = '∞',
t2 = '∞';
if (m1.isValid()) {
// t1 = m1.calendar();
t1 = m1.isSame(now, 'year') ? m1.format('dd, D MMMM, HH:mm') : m1.format('dd, D MMMM YYYY, HH:mm');
}
if (m2.isValid()) {
// t2 = m1.isSame(m2, 'day') ? m2.format('HH:mm') : m2.calendar();
t2 = m2.isSame(m1, 'day') ? m2.format('HH:mm') :
m2.isSame(now, 'year') ? m2.format('dd, D MMMM, HH:mm') : m2.format('dd, D MMMM YYYY, HH:mm');
}
return t1 + ' – ' + t2;
}
}
}());
(函数(){
"严格使用",;
/**
*@ngdoc服务
*@name components.dateUtils.factory:dateUtils
*
*@说明
*
*/
有棱角的
.module('components.dateUtils')
.工厂(“dateUtils”,dateUtilsFactory);
函数DateUtilFactory(时刻){
var dateUtils={
射程:射程
};
返回日期;
/**
* Возвращает строку, содержащую текстовое представления диапазона дат.
* Например (считая, что сейчас 2015 год):
*
* чт, 31 декабря, 17:30 – ∞
∞ – пт, 1 января 2016, 21:30
чт, 31 декабря, 17:30 – пт, 1 января 2016, 09:00
чт, 31 декабря, 17:30 – 21:30
*
*@param date1Пааааааааа
*@param date2ааааааааааа
*
*返回值为。
*/
函数范围(日期1、日期2){
var now=力矩(),
m1=力矩(日期1 | |空),
m2=力矩(日期2 | |空),
t1='∞',
t2='∞';
if(m1.isValid()){
//t1=m1.calendar();
t1=m1.isname(现在是'year')?m1.format('dd,D-MMMM,HH:mm'):m1.format('dd,D-MMMM-YYYY,HH:mm');
}
if(m2.isValid()){
//t2=m1.isname(m2,'day')?m2.format('HH:mm'):m2.calendar();
t2=m2.isame(m1,'day')?m2.format('HH:mm'):
m2.isname(现在是“年”)?m2.format('dd,D-MMMM,HH:mm'):m2.format('dd,D-MMMM-YYYY,HH:mm');
}
返回t1+'-'+t2;
}
}
}());
如果您不使用任何模块系统和模块绑定器(如webpack、browserify)或模块加载程序(如systemjs),那么可以。对于angular1来说,这是主要的工作方式
在我的应用程序中,我刚刚创建了一些工厂,如arrayUtils
,numberUtils
,domUtils
,dateUtils
,并在需要任何函数时注入它们
例如:
date-utils-module.js
(function () {
'use strict';
/* @ngdoc object
* @name components.dateUtils
* @description
*
*/
angular
.module('components.dateUtils', [
'angularMoment'
]);
}());
date-utils-factory.js
(function () {
'use strict';
/**
* @ngdoc service
* @name components.dateUtils.factory:dateUtils
*
* @description
*
*/
angular
.module('components.dateUtils')
.factory('dateUtils', dateUtilsFactory);
function dateUtilsFactory(moment) {
var dateUtils = {
range: range
};
return dateUtils;
/**
* Возвращает строку, содержащую текстовое представления диапазона дат.
* Например (считая, что сейчас 2015 год):
* <pre>
* чт, 31 декабря, 17:30 – ∞
∞ – пт, 1 января 2016, 21:30
чт, 31 декабря, 17:30 – пт, 1 января 2016, 09:00
чт, 31 декабря, 17:30 – 21:30
* </pre>
* @param date1 первая дата
* @param date2 вторая дата
*
* @returns строка с диапазоном дат.
*/
function range(date1, date2) {
var now = moment(),
m1 = moment(date1 || null),
m2 = moment(date2 || null),
t1 = '∞',
t2 = '∞';
if (m1.isValid()) {
// t1 = m1.calendar();
t1 = m1.isSame(now, 'year') ? m1.format('dd, D MMMM, HH:mm') : m1.format('dd, D MMMM YYYY, HH:mm');
}
if (m2.isValid()) {
// t2 = m1.isSame(m2, 'day') ? m2.format('HH:mm') : m2.calendar();
t2 = m2.isSame(m1, 'day') ? m2.format('HH:mm') :
m2.isSame(now, 'year') ? m2.format('dd, D MMMM, HH:mm') : m2.format('dd, D MMMM YYYY, HH:mm');
}
return t1 + ' – ' + t2;
}
}
}());
(函数(){
"严格使用",;
/**
*@ngdoc服务
*@name components.dateUtils.factory:dateUtils
*
*@说明
*
*/
有棱角的
.module('components.dateUtils')
.工厂(“dateUtils”,dateUtilsFactory);
函数DateUtilFactory(时刻){
var dateUtils={
射程:射程
};
返回日期;
/**
* Возвращает строку, содержащую текстовое представления диапазона дат.
* Например (считая, что сейчас 2015 год):
*
* чт, 31 декабря, 17:30 – ∞
∞ – пт, 1 января 2016, 21:30
чт, 31 декабря, 17:30 – пт, 1 января 2016, 09:00
чт, 31 декабря, 17:30 – 21:30
*
*@param date1Пааааааааа
*@param date2ааааааааааа
*
*返回值为。
*/
函数范围(日期1、日期2){
var now=力矩(),
m1=力矩(日期1 | |空),
m2=力矩(日期2 | |空),
t1='∞',
t2='∞';
if(m1.isValid()){
//t1=m1.calendar();
t1=m1.isname(现在是'year')?m1.format('dd,D-MMMM,HH:mm'):m1.format('dd,D-MMMM-YYYY,HH:mm');
}
if(m2.isValid()){
//t2=m1.isname(m2,'day')?m2.format('HH:mm'):m2.calendar();
t2=m2.isame(m1,'day')?m2.format('HH:mm'):
m2.isname(现在是“年”)?m2.format('dd,D-MMMM,HH:mm'):m2.format('dd,D-MMMM-YYYY,HH:mm');
}
返回t1+'-'+t2;
}
}
}());
不完全清楚您的应用程序是否是纯Angular应用程序。如果是,我建议您使用标准Angular服务或factory模式。如果您的应用程序是某种混合应用程序,并且您正在Angular框架之外运行应用程序的一部分,那么您可以使用JavaScrip声明所有描述的功能t模块模式
是的,您创建了一个全局变量,但您已将所有功能封装在一个全局对象中。不完全清楚您的应用程序是否是纯角度应用程序。如果是,我建议您使用y