2017-09-16 42 views
0

我得到的错误为modifyProduct.then is not a function,我读过一些文章,它说因为我没有返回任何承诺,我怎么能做到这一点,有人可以帮助我错误返回Promise,获取错误,因为.then不是Angular JS的函数

在这里,我呼吁modifyProductexecutionFromCompany功能,然后我使用executionFromCompany控制器

var app = angular.module('myApp', ["chart.js"]); 
app.factory('ProductsService', function($http) { 
    function getProduct() { 
     return $http.get('finalmsodetails.json').then(function(response) { 
      //console.log(response.data); 
      return response.data; 
     }); 
    } 

    function modifyProduct() { 
     return getProduct().then(function(rawData) { 
      newtest = rawData; 
      //console.log('test', newtest.length); 
      var lightData = rawData.map(function(item) { 
       // use Object.assign to prevent mutating original object 
       var newItem = Object.assign({}, item); 
       var lightExecutions = item.executions.map(function(d) { 
        var ld = { 
         id: d.id, 
         orderId: d.orderId, 
         executionStatus: d.executionStatus, 
         executedOn: d.executedOn, 
         executedBy: d.executedBy, 
         executedByDisplay: d.executedByDisplay, 
        }; 
        return ld; 
       }); 
       newItem.executions = lightExecutions; 
       return newItem; 
      }); 
      return lightData; 
     }); 
    } 

    function executionFromCompany() { 
     return modifyProduct.then(function(lightData) { 
      executionByCompany = $filter('filter')(lightData.executions, function(inputs) { 
       if ((inputs.executedBy == 'a')) return inputs; 
      }); 
      console.log(executionByCompany); 
      return executionByCompany; 
     }); 
    } 
    return { 
     getProduct: getProduct, 
     modifyProduct: modifyProduct, 
     executionFromCompany: executionFromCompany 
    }; 
}); 
app.controller('MainCtrl', function($scope, ProductsService) { 
    ProductsService.executionFromCompany().then(function(value) { 
     console.log(value); 
    }, function(err) { 
     // Here will be if there was an error 
    }) 
}); 
+1

简单错字错误modifyProduct()。然后 – user2280016

回答

2

modifyProduct里面是一个函数,而不是一个对象

变化这

modifyProduct.then 

modifyProduct().then 
+0

谢谢!你可以帮我怎么确保'modifyProduct'返回值 – Batman

+1

你可以使用回调方法返回值 –

+0

什么让你觉得它不会返回任何东西? –