style change attribute javascript angularjs

javascript - change - $ callback de recurso(error y éxito)



title css (3)

A partir de un PR en el recurso angular y angular 1.2, angular cambiará a una forma más sencilla de realizar la verificación de éxito / error. En lugar de adjuntar devoluciones de llamada o un método $ then, tanto Resource.get (..) como instance.get () admitirán el método $ promise, que naturalmente devuelve una promesa para ambos.

A partir de 1.2 angular, la función $ promesa se activará: $ promesa cambios

Cambie su solicitud de "obtención" para que sea algo en este sentido (el ejemplo original se encuentra en la página de inicio de angularjs.org):

factory(''Project'', function($resource) { var Project = $resource(''https://api.mongolab.com/api/1/databases'' + ''/youraccount/collections/projects/:id'', { apiKey: ''yourAPIKey'' }, { update: { method: ''PUT'' } } ); Project.prototype.update = function(cb) { return Project.update({id: this._id.$oid}) .$promise.then( //success function( value ){/*Do something with value*/}, //error function( error ){/*Do something with error*/} ) }; Project.prototype.destroy = function(cb) { return Project.remove({id: this._id.$oid}) .$promise.then( //success function( value ){/*Do something with value*/}, //error function( error ){/*Do something with error*/} ) }; return Project; });

En otro lugar del controlador a puede crear una instancia de "Proyecto" de recursos donde puede usar la misma interfaz para los éxitos y errores:

var myProject = new Project(); myProject.$get({id: 123}). .$promise.then( //success function( value ){/*Do something with value*/}, //error function( error ){/*Do something with error*/} )

Estoy usando AngularJS 1.1.3 para usar el nuevo $ resource con promesas ...

¿Cómo puedo obtener la devolución de llamada de eso? Intenté de la misma manera que lo hice con $ http:

$resource.get(''...''). success(function(data, status) { alert(data); }). error(function(data, status) { alert((status); });

Pero no hay funciones de ''éxito'' ni de ''error'' ...

También intenté que:

$resource.get({ id: 10 },function (data) { console.log(''success, got data: '', data); }, function (err) { alert(''request failed''); });

Eso siempre imprime "éxito, obtuve datos" incluso si el rendimiento es un 404 ...

¿Alguna idea?

Gracias


Dos caminos

var resource = $resource(""); resource.$promise.then(function(data){ // do stuff success }, function(error){ //do stuff error });

Otra manera

var resource = $resource(""); resource({}, function success(data){ //do stuff }, function error(error){ //do stuff }


var MyResource = $resource("/my-end-point/:action", {}, { getSomeStuff: { method:"GET", params: { action:"get-some-stuff" }, isArray: true }, getSingleThing: { method:"GET", params: { action:"get-single-thing" }, isArray: false } }); function MyController(MyResource) { var itemList = MyResource.getSomeStuff({}, function success() {}, function err() {}); // will call: /my-end-point/get-some-stuff // will be array. each object is resource''s instance var item = MyResource.getSingleThing({id:123}, function success() {}, function err() {}); // will call: /my-end-point/get-single-thing?id=123 // will be object. an instance of resource }

También ngResource ver el ejemplo en docs: ngResource