как получить данные от заводов до сервисов в рестав

0

Здесь купон - это параметр передачи моей ng-модели из контроллеров. я получаю данные ответа. Я не знаю, как получить этот ответ от завода к услугам.

пожалуйста помогите..

 var factmodule=angular.module("FactModule",["ngResource"]);
factmodule.factory("CouponFactory",function($resource){

   var couponinfo;
   var coupondata
   return{
    getcoupon:function(coupon){

         var user=$resource("http://demo.foodzard.in/api/promocode?code="+coupon.offer);
      user.get(function(data){

          couponvalue=data
          console.log(data);
          return couponvalue;

      })


  }        
 }
 })

Код услуги

var servctrl=angular.module("ServModule",["FactModule"]);  
servctrl.service("CouponService",function(CouponFactory){

this.checkdata=function(coupon){
   CouponFactory.getcoupon(coupon)
}
 })

код контроллеров

// getting coupon code from ng-model in the text box   
mainCtrl.controller("OrderController",function($scope,CouponService){
$scope.validate=function($scope.coupon){ 
CouponService.checkdata($scope.coupon)
  }
});
Теги:

2 ответа

0

Важно понимать, что вызов метода объекта $resource немедленно возвращает пустую ссылку (объект или массив в зависимости от isArray). Как только данные возвращаются с сервера, существующая ссылка заполняется фактическими данными. 1

Поскольку return couponvalue; оператор возникает в функции, которую функция $q вызывает в будущем, функция фабрики, которая выполняется немедленно, не возвращает никаких данных.

Вместо этого верните пустую ссылку пользователя и используйте свойство $promise для получения данных.

var factmodule=angular.module("FactModule",["ngResource"]);

factmodule.factory("CouponFactory",function($resource){

    var couponinfo;
    var coupondata
    return {
      getcoupon:function(coupon){

          var user=$resource("http://demo.foodzard.in/api/promocode?code="+coupon.offer);

          //return object reference
          return user.get();
       }        
     }
})

Используйте свойство $promise для извлечения данных из службы $q.

var servctrl=angular.module("ServModule",["FactModule"]);

servctrl.service("CouponService",function(CouponFactory){

    this.checkdata=function(coupon){
        return resourceObject = CouponFactory.getcoupon(coupon);
        //retrieve future data
        resourceObject.$promise.then( onFullfilled(data) {
            var couponvalue=data;
            console.log(data);                
        });
    });
});

.then методы обещания принимает функцию в качестве аргумента. Служба $q сохраняет эту функцию и вызывает ее в будущем, когда XHR завершает работу.

0

Если factmodule находится в отдельном модуле от servctrl, тогда вам нужно ввести factmodule в servctrl при создании углового модуля

например

var servctl = angular.module('servctl', [       
        'factmodule']);
})();

то, что я буду делать, это app.factory("CouponFactory", function ($ resource) {... и app.service("CouponService", функция (CouponFactory) {

Затем они находятся в одном модуле и будут доступны

  • 0
    Я уже ввел фактомодуля в услуги. Здесь проблема не в инъекции. получение купонной стоимости от factorys.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню