AngularJS
Funzioni ausiliarie integrate
Ricerca…
angular.equals
La funzione angular.equals
confronta e determina se 2 oggetti o valori sono uguali, angular.equals
esegue un confronto profondo e restituisce true se e solo se almeno una delle seguenti condizioni è soddisfatta.
angular.equals (valore1, valore2)
- Se gli oggetti o i valori superano il confronto
===
- Se entrambi gli oggetti o valori sono dello stesso tipo e tutte le loro proprietà sono uguali utilizzando
angular.equals
- Entrambi i valori sono uguali a
NaN
- Entrambi i valori rappresentano il risultato della stessa espressione regolare.
Questa funzione è utile quando è necessario confrontare in profondità gli oggetti o gli array con i loro valori o risultati piuttosto che con semplici riferimenti.
Esempi
angular.equals(1, 1) // true
angular.equals(1, 2) // false
angular.equals({}, {}) // true, note that {}==={} is false
angular.equals({a: 1}, {a: 1}) // true
angular.equals({a: 1}, {a: 2}) // false
angular.equals(NaN, NaN) // true
angular.isString
La funzione angular.isString
restituisce true se l'oggetto o il valore ad esso assegnato è del tipo string
angular.isString (valore1)
Esempi
angular.isString("hello") // true
angular.isString([1, 2]) // false
angular.isString(42) // false
Questo è l'equivalente di esibirsi
typeof someValue === "string"
angular.isArray
La funzione angular.isArray
restituisce true se e solo se l'oggetto o il valore passato ad esso è del tipo Array
.
angular.isArray (valore)
Esempi
angular.isArray([]) // true
angular.isArray([2, 3]) // true
angular.isArray({}) // false
angular.isArray(17) // false
È l'equivalente di
Array.isArray(someValue)
angular.merge
La funzione angular.merge prende tutte le proprietà enumerabili dall'oggetto sorgente per estendere profondamente l'oggetto di destinazione.
La funzione restituisce un riferimento all'oggetto di destinazione ora esteso
angular.merge (destination, source)
Esempi
angular.merge({}, {}) // {}
angular.merge({name: "king roland"}, {password: "12345"})
// {name: "king roland", password: "12345"}
angular.merge({a: 1}, [4, 5, 6]) // {0: 4, 1: 5, 2: 6, a: 1}
angular.merge({a: 1}, {b: {c: {d: 2}}}) // {"a":1,"b":{"c":{"d":2}}}
angular.isDefined and angular.isUndefined
La funzione angular.isDefined
verifica un valore se è definito
angular.isDefined (someValue)
Questo è l'equivalente di esibirsi
value !== undefined; // will evaluate to true is value is defined
Esempi
angular.isDefined(42) // true
angular.isDefined([1, 2]) // true
angular.isDefined(undefined) // false
angular.isDefined(null) // true
La funzione angular.isUndefined
verifica se un valore non è definito (è effettivamente l'opposto di angular.isDefined
)
angular.isUndefined (someValue)
Questo è l'equivalente di esibirsi
value === undefined; // will evaluate to true is value is undefined
O semplicemente
!angular.isDefined(value)
Esempi
angular.isUndefined(42) // false
angular.isUndefined(undefined) // true
angular.isDate
La funzione angular.isDate
restituisce true se e solo se l'oggetto passato ad esso è del tipo Date.
angular.isDate (valore)
Esempi
angular.isDate("lone star") // false
angular.isDate(new Date()) // true
angular.isNumber
La funzione angular.isNumber
restituisce true se e solo se l'oggetto o il valore passato ad esso è del tipo Number, questo include + Infinity, -Infinity e NaN
angular.isNumber (valore)
Questa funzione non causerà un tipo di coercizione come
"23" == 23 // true
Esempi
angular.isNumber("23") // false
angular.isNumber(23) // true
angular.isNumber(NaN) // true
angular.isNumber(Infinity) // true
Questa funzione non causerà un tipo di coercizione come
"23" == 23 // true
angular.isFunction
La funzione angular.isFunction
determina e restituisce true se e solo se il valore passato è un riferimento a una funzione.
La funzione restituisce un riferimento all'oggetto di destinazione ora esteso
angular.isFunction (fn)
Esempi
var onClick = function(e) {return e};
angular.isFunction(onClick); // true
var someArray = ["pizza", "the", "hut"];
angular.isFunction(someArray ); // false
angular.toJson
La funzione angular.toJson
prenderà un oggetto e lo serializzerà in una stringa formattata JSON.
A differenza della funzione nativa JSON.stringify
, questa funzione rimuoverà tutte le proprietà che iniziano con $$
(come angolare di solito prefigura le proprietà interne con $$
)
angular.toJson(object)
Poiché i dati devono essere serializzati prima di passare attraverso una rete, questa funzione è utile per trasformare qualsiasi dato che desideri trasmettere in JSON.
Questa funzione è utile anche per il debug in quanto funziona in modo simile a un metodo .toString
.
Esempi:
angular.toJson({name: "barf", occupation: "mog", $$somebizzareproperty: 42})
// "{"name":"barf","occupation":"mog"}"
angular.toJson(42)
// "42"
angular.toJson([1, "2", 3, "4"])
// "[1,"2",3,"4"]"
var fn = function(value) {return value}
angular.toJson(fn)
// undefined, functions have no representation in JSON
angular.fromJson
La funzione angular.fromJson
deserializza una stringa JSON valida e restituisce un oggetto o una matrice.
angular.fromJson (string | oggetto)
Si noti che questa funzione non è limitata alle sole stringhe, ma produrrà una rappresentazione di qualsiasi oggetto passato ad esso.
Esempi:
angular.fromJson("{\"yogurt\": \"strawberries\"}")
// Object {yogurt: "strawberries"}
angular.fromJson('{jam: "raspberries"}')
// will throw an exception as the string is not a valid JSON
angular.fromJson(this)
// Window {external: Object, chrome: Object, _gaq: Y, angular: Object, ng339: 3…}
angular.fromJson([1, 2])
// [1, 2]
typeof angular.fromJson(new Date())
// "object"
angular.noop
L' angular.noop
è una funzione che non esegue operazioni, si passa angular.noop
quando è necessario fornire un argomento di funzione che non farà nulla.
angular.noop ()
Un uso comune di angular.noop
può essere quello di fornire un callback vuoto a una funzione che altrimenti genera un errore quando viene passato ad esso qualcosa di diverso da una funzione.
Esempio:
$scope.onSomeChange = function(model, callback) {
updateTheModel(model);
if (angular.isFunction(callback)) {
callback();
} else {
throw new Error("error: callback is not a function!");
}
};
$scope.onSomeChange(42, function() {console.log("hello callback")});
// will update the model and print 'hello callback'
$scope.onSomeChange(42, angular.noop);
// will update the model
Ulteriori esempi:
angular.noop() // undefined
angular.isFunction(angular.noop) // true
angular.isObject
angular.isObject
restituisce true se e solo se l'argomento passato ad esso è un oggetto, questa funzione restituirà anche true per una matrice e restituirà false per null
anche se typeof null
è object
.
angular.isObject (valore)
Questa funzione è utile per il controllo del tipo quando è necessario elaborare un oggetto definito.
Esempi:
angular.isObject({name: "skroob", job: "president"})
// true
angular.isObject(null)
// false
angular.isObject([null])
// true
angular.isObject(new Date())
// true
angular.isObject(undefined)
// false
angular.isElement
angular.isElement
restituisce true se l'argomento passato ad esso è un elemento DOM o un elemento jQuery spostato.
angular.isElement (elem)
Questa funzione è utile per digitare check se un argomento passato è un elemento prima di essere elaborato come tale.
Esempi:
angular.isElement(document.querySelector("body"))
// true
angular.isElement(document.querySelector("#some_id"))
// false if "some_id" is not using as an id inside the selected DOM
angular.isElement("<div></div>")
// false
angular.copy
La funzione angular.copy
accetta un oggetto, una matrice o un valore e ne crea una copia profonda.
angular.copy ()
Esempio:
Oggetti:
let obj = {name: "vespa", occupation: "princess"};
let cpy = angular.copy(obj);
cpy.name = "yogurt"
// obj = {name: "vespa", occupation: "princess"}
// cpy = {name: "yogurt", occupation: "princess"}
Array:
var w = [a, [b, [c, [d]]]];
var q = angular.copy(w);
// q = [a, [b, [c, [d]]]]
Nell'esempio precedente angular.equals(w, q)
valuterà true perché .equals
verifica l'uguaglianza per valore. tuttavia w === q
valuterà come falso perché il confronto stretto tra oggetti e matrici viene fatto per riferimento.
angular.identity
La funzione angular.identity
restituisce il primo argomento passato ad esso.
angular.identity (argomento)
Questa funzione è utile per la programmazione funzionale, è possibile fornire questa funzione come predefinita nel caso in cui non sia stata superata una funzione prevista.
Esempi:
angular.identity(42) // 42
var mutate = function(fn, num) {
return angular.isFunction(fn) ? fn(num) : angular.identity(num)
}
mutate(function(value) {return value-7}, 42) // 35
mutate(null, 42) // 42
mutate("mount. rushmore", 42) // 42
angular.forEach
angular.forEach
accetta un oggetto e una funzione iteratore. Quindi esegue la funzione iteratore su ciascuna proprietà / valore enumerabile dell'oggetto. Questa funzione funziona anche sugli array.
Come la versione JS di Array.prototype.forEach
La funzione non esegue iterazioni sulle proprietà ereditate (proprietà prototype), tuttavia la funzione non tenterà di elaborare un valore null
o undefined
e lo restituirà semplicemente.
angular.forEach (oggetto, funzione (valore, chiave) {// funzione});
Esempi:
angular.forEach({"a": 12, "b": 34}, (value, key) => console.log("key: " + key + ", value: " + value))
// key: a, value: 12
// key: b, value: 34
angular.forEach([2, 4, 6, 8, 10], (value, key) => console.log(key))
// will print the array indices: 1, 2, 3, 4, 5
angular.forEach([2, 4, 6, 8, 10], (value, key) => console.log(value))
// will print the array values: 2, 4, 6, 7, 10
angular.forEach(undefined, (value, key) => console.log("key: " + key + ", value: " + value))
// undefined