数据不作为服务的全球形式工厂

时间:2016-03-21 06:39:15

标签: javascript angularjs

下面我从api获取信息。在控制台中,当我返回无法进入服务的iteminfo数据时,我得到了数据。

这是我的工厂代码

factmodule.factory("OrderFactory", function() {
    var iteminfo;
    var Iteminforesource = $resource("http://demo.foodzard.in/api/menu");
    return {
        Iteminforesource.get(function(data) {

            iteminfo = data.message;
            console.log("this is menu " + iteminfo)
        }, function(d, s) {
            console.log("Error*** " + s)
        })
        return iteminfo;
    }

})

这是我的服务代码。 在控制台数据中显示未定义的

servctrl.service("OrderService", function(OrderFactory) {
    this.getAllInfoItem = function() {
        return OrderFactory.Iteminforesource();
        console.log(OrderFactory.Iteminforesource());
    }
})
请ple hlep我

1 个答案:

答案 0 :(得分:1)

您可以阅读promise个对象here或Angular特定here

factmodule.factory("OrderFactory", function() {
    var Iteminforesource = $resource("http://demo.foodzard.in/api/menu");
    return {
        // return promise object
        iteminfo:function{
        return Iteminforesource.get().$promise.then(function(data) {
            // promise will resolved with data.message
            return data.message;
        });
    }
    }

})

servctrl.service("OrderService", function(OrderFactory) {
    this.getAllInfoItem = function() {
        // this service also will return promise
        return OrderFactory.iteminfo();
    }
})

// in controllers getAllInfoItem must be used like this
orderService.getAllInfoItem().then(function(message) {
    console.log(message);
})