服务 - 控制器连接

时间:2017-05-06 15:47:06

标签: javascript angularjs

抱歉,我是webDev的新手。我如何从工厂获取数据到mainCtrl。

代码:

shopApp.controller("mainCtrl",function($scope,newItemsFactory){
    $scope.newItems=newItemsFactory.getNewItems();
    console.log($scope.newItems);  //NOT WORK
});

shopApp.factory('newItemsFactory',function($http){
    return{
        getNewItems:function(){
            $http({method: 'GET', url: '../php/newItems.php'}).
                then (function success(response) {
                       return response.data;
                    }, function error(response) {
                        console.log("Error!");
                    }
                );
        }
    }
});

谢谢)

1 个答案:

答案 0 :(得分:0)

首先,您应该从Promise返回newItemsFactory.getNewItems()

getNewItems:function(){
    return $http({method: 'GET', url: '../php/newItems.php'});
}

使用Promise.then来处理结果,使用Promise.catch来处理控制器中的错误:

$scope.newItems=newItemsFactory.getNewItems().then(function(response) {
    $scope.newItems = response.data;
}.catch(function error(response) {
    console.log("Error!");
};