将promise数据推送到数组

时间:2015-01-22 17:16:33

标签: javascript angularjs

我可能没有正确使用promises,但我正在调用一个服务(在一个单独的工厂中定义)到我的控制器中,就像这样,

_.each( $scope.aap.idList, function( id ){
    MyService.getItems( $stateParams.name, id ).$promise.then(
        function( scan ){
            if( scan.length !== 0){
                addToList( scan );
            }
        })
});

var addToList = function ( item ) {
    $scope.aap.scans.push( _.clone( item ) );
    return $scope.aap.scans;
};

该服务定义为:

    service.getItems = function ( name, id ) {
        var Items = $resource( '/proj/rs/pr/elems/getItems', {
            id: Id,
            name: name
        }, {
            query: {
                method: 'GET',
                isArray: true,
                transformResponse: function ( scans ) {
                    var items = angular.fromJson( scans );
                    _.each( items, function ( scanItem ) {
                        scanItem.checked = false;
                    } );
                    return items;
                }
            }
        } );
        return Items.query();

现在,在MyService.getItems我可以添加console.log( scan )并查看正在传递的相应对象,但不会将这些项添加到我的列表中。我还有其他方法可以解决这个问题吗?

0 个答案:

没有答案