Angularjs承诺验证

时间:2016-01-03 20:08:09

标签: javascript angularjs validation angular-promise

我正在开发一个用angularjs编写的工作流引擎,在阶段更改之间,我可以配置一个验证方法来运行,工作流引擎希望这个验证函数返回一个布尔值来代替阶段更改。< / p>

如果你正在检查用户输入等,这个验证方案很棒,但是如果你需要调用服务器,由于这些调用的异步特性,工作流引擎不会等待调用的结果和进入下一阶段。

为了防止这种情况发生,我想我可以利用承诺。我提出了如下所示的验证方法,但我遇到的问题是,当异步调用完成时,我可以返回true,但它会在内部函数中返回。

我需要实现的是我需要在异步操作完成后从$ scope.validate返回true,我可以使用jquery轻松完成此操作,但我想使用angularjs和promises实现它,任何帮助都将受到赞赏:

var createPromise;

    $scope.validate = function() {
        createPromise = $scope.createAndGoSales();

        createPromise.then(function(data) {
            return true;
        });
    }

    $scope.createAndGoSales = function () {
        return customservice.createSales({
            ProductChangeId: $scope.model.ProductChange.Id
        }, function (response) {

        });
    }

1 个答案:

答案 0 :(得分:0)

只需从validate方法返回promise,然后处理此返回的promise。