我可能没有正确使用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 )
并查看正在传递的相应对象,但不会将这些项添加到我的列表中。我还有其他方法可以解决这个问题吗?