/ / Configuración de la configuración angular $ resource globalmente - angularjs, angularjs-resource

Configuración de Angular $ resource Config Globally - angularjs, angularjs-resource

Según el siguiente ejemplo, ¿cómo puedo configurar el $resource tiempo de espera y encabezados a nivel mundial? Tengo varias $resource definiciones como las siguientes, pero preferiría no repetir la configuración básica para cada una.

angular
.module("myApp.services")
.factory("myServices", myServices);

myServices.$inject = ["$resource"];

function myServices($resource) {
return {
serviceA: $resource("/api/serviceA", {
serviceA_paramA: "@serviceA_valueA",
serviceA_paramB: "@serviceA_valueB"
}, {
"get": {
method: "GET",
timeout: 120000
}
}, {
headers: {
"Accept": "application/json",
"Content-Type": "application/json"
}
}),
serviceB: $resource("/api/serviceB", {
serviceB_paramA: "@serviceB_valueA",
serviceB_paramB: "@serviceB_valueB"
}, {
"get": {
method: "GET",
timeout: 120000
}
}, {
headers: {
"Accept": "application/json",
"Content-Type": "application/json"
}
})
};
}

Respuestas

2 para la respuesta № 1

Defina su objeto de configuración como una constante, luego puede inyectarlo en cada servicio que lo necesite y sobrescribir cualquier propiedad que sea específica de ese servicio.

//Constant
angular.module("myApp")
.constant("serviceConfigObject",
{
"get": {
method: "GET",
timeout: 120000
}
}, {
headers: {
"Accept": "application/json",
"Content-Type": "application/json"
}
})

// Service
angular
.module("myApp.services")
.factory("myServices", myServices);

myServices.$inject = ["$resource", "serviceConfigObject"];

function myServices($resource, serviceConfigObject) {
return {
serviceA: $resource("/api/serviceA", {
serviceA_paramA: "@serviceA_valueA",
serviceA_paramB: "@serviceA_valueB"
}, serviceConfigObject),
serviceB: $resource("/api/serviceB", {
serviceB_paramA: "@serviceB_valueA",
serviceB_paramB: "@serviceB_valueB"
}, serviceConfigObject)
};
}

0 para la respuesta № 2

Puede tener un proveedor bajo .config(), .value() o .constant() módulo. Refiérase a esta útil Gist que explica y proporciona un código de muestra para todos los diferentes proveedores.

Por simplicidad, este es el ejemplo .constant ():

angular
.module("myApp.constants")
.constant("AppConstants", {
"timeout" : 120000,
"method"  : "GET",
....
// define your kv structure here
})

Entonces ahora puede inyectarlo en la función de su módulo. Espero que esto ayude.