将函数参数传递给$ scope.$ apply?

jcl*_*ncy 8 javascript callback angularjs

我正在使用$ scope.$申请回调,特别是使用Stripe.目前我有一些代码

var stripeCallback = function (status, response) {
    if (!response.error) {
        // do something
    } else {
        // do something else
    }
};

$scope.submit = function () {
    $scope.errorMessage = 'Processing...';
    $scope.buttonDisabled = true;
    // can't use bindings for some reason
    var myForm = $('#paymentform');
    Stripe.createToken(myForm, function (status, response) {
        $scope.$apply(stripeCallback);
    });
};
Run Code Online (Sandbox Code Playgroud)

这个问题是我无法得到任何论据stripeCallback,即response.有什么方法可以传递函数参数$scope.$apply吗?我无法找到任何对此文档的引用.

The*_*ppo 7

包装stripeCallback成匿名函数:

var stripeCallback = function (status, response) {
    ....
};

$scope.submit = function () {
    $scope.errorMessage = 'Processing...';
    $scope.buttonDisabled = true;
    // can't use bindings for some reason
    var myForm = $('#paymentform');
    Stripe.createToken(myForm, function (status, response) {
        $scope.$apply(function() {
            stripeCallback(status, response);
        });
    });
};
Run Code Online (Sandbox Code Playgroud)


Mar*_*cok 5

您也可以$scope.$apply()在致电回拨后致电:

Stripe.createToken(myForm, function (status, response) {
    stripeCallback(status, response);
    $scope.$apply();
});
Run Code Online (Sandbox Code Playgroud)