/ / Cómo pasar parámetros al módulo en angularjs - angularjs

Cómo pasar el parámetro al módulo en angularjs - angularjs

Estoy mirando ejemplos de angularjs, he encontrado este ejemplo:

// This is a module for cloud persistance in mongolab - https://mongolab.com
angular.module("mongolab", ["ngResource"]).
factory("Project", function($resource) {
var Project = $resource("https://api.mongolab.com/api/1/databases" +
"/angularjs/collections/projects/:id",
{ apiKey: "4f847ad3e4b08a2eed5f3b54" }, {
update: { method: "PUT" }
}
);

Project.prototype.update = function(cb) {
return Project.update({id: this._id.$oid},
angular.extend({}, this, {_id:undefined}), cb);
};

Project.prototype.destroy = function(cb) {
return Project.remove({id: this._id.$oid}, cb);
};

return Project;
});

No quiero usar un recurso estático de cadena mágica como https://api.mongolab.com/api/1/databases/angularjs/collections/projects/:id, en cambio me gustaría tenerlo definido enservidor y luego pasó al módulo. Mi pregunta es, ¿cómo parametrizas el módulo, es decir, cómo pasas una variable de JavaScript al módulo desde afuera?

Respuestas

0 para la respuesta № 1

Debe usar la receta del proveedor solo cuandodesea exponer una API para la configuración de toda la aplicación que debe realizarse antes de que se inicie la aplicación. Esto suele ser interesante solo para servicios reutilizables cuyo comportamiento puede necesitar variar ligeramente entre las aplicaciones.

var app = angular.module("mongolab", ["ngResource"])
app.provider("project", function projectProvider(){
var resourceUrl = false;

this.resourceUrl = function(url){
this.resourceUrl = url;
}

this.$get = [function project(){
return new Project(resourceUrl);
}];
});

function Project(resourceUrl) {
var Project = $resource(resourceUrl,
{ apiKey: "4f847ad3e4b08a2eed5f3b54" }, {
update: { method: "PUT" }
}
);

Project.prototype.update = function(cb) {
return Project.update({id: this._id.$oid},
angular.extend({}, this, {_id:undefined}), cb);
};

Project.prototype.destroy = function(cb) {
return Project.remove({id: this._id.$oid}, cb);
};

return Project;
});

Entonces puedes configurarlo con

app.config(["projectProvider", function(projectProvider){
projectProvider.resourceUrl("https://api.mongolab.com/api/1/databases" +
"/angularjs/collections/projects/:id")
}]);