new Angular.js 1.1.5资源返回promise then()函数错误,然后是另一个请求



我正在使用最新的Angular.js 1.1.5,它通过资源调用返回promise。当您有多个请求,然后是另一个依赖于这些请求的请求时,什么是正确的实现?

$scope.save = function() {
    var newids = [];
    angular.forEach ($scope.template.children, function (value){
        //saves the children as a new template and returns the ID
        Template.$addNew(value).then(
            function( value ){newids.push(value);},
            function ( error ) {console.log ('error')}
        )
    });
    //updates the root template
    $scope.template.childrenIDs = newids;
    Template.$update($scope.template).then(
            function( value ){ console.log('successfully saved')},
            function ( error ) {console.log ('error')}
        )
}

为此,我得到了一个错误:

类型错误:对象#没有方法"then"

模板是以下返回资源的工厂:

mongoAPI.
factory('Template', ['$resource', '$http', 'CONSTANTS', 'security', function($resource, $http, CONSTANTS, security) {
    var actions = {                        
        'addNew': {method:'POST'},   
    }
    var res = $resource(CONSTANTS.url, {}, actions)
    return res;
}]); 

仅供参考

从1.2.0开始,$resource暴露$promise:

Template.$addNew(value).$promise.then(
    function( value ){newids.push(value);},
    function ( error ) {console.log ('error')}
)

文档

完全公开的承诺目前仅在master(commithttps://github.com/angular/angular.js/commit/05772e15fbecfdc63d4977e2e8839d8b95d6a92d)。

从1.1.3开始,$resource通过$then暴露了promise的then函数(同样是$resolved):

Template.$addNew(value).$then(
    function( value ){newids.push(value);},
    function ( error ) {console.log ('error')}
)

相关内容

  • 没有找到相关文章

最新更新