Угловой контроллер полосы не обновляется - PullRequest
0 голосов
/ 20 апреля 2019

У меня проблема с контроллерами Angular 1.6 и Stripe.У меня есть контроллер, который меняет представление в зависимости от шага Varabiable.Я изменяю шаг на основе успешного обратного вызова из Stripe следующим образом:

stripe.createToken(card).then((result) => {

                     if (result.error) {
                         // Inform the customer that there was an error.
                         var errorElement = document.getElementById('card-errors');
                         errorElement.textContent = result.error.message;
                      } else {
                        // Send the token to your server.
                        stripe_token = result.token;
                        //Change step
                        $scope.step = step;
                      }
                })
                .catch( e =>{
                    console.log("Error");
                });

Проблема в том, что когда шаг назначается внутри обратного вызова, значение присваивается, но представление не обновляется.Есть идеи, почему это происходит только с обратными вызовами Stripe в Angular?

Ответы [ 3 ]

1 голос
/ 21 апреля 2019

У меня недостаточно репутации, чтобы добавить комментарий к вашему собственному ответу, но я просто хотел добавить, что лучше передавать соответствующую функцию в $scope.apply, чем просто вызывать ее с нулевыми аргументами.

0 голосов
/ 22 апреля 2019

Используйте сервис $ http, предоставляемый AngularJs.Это автоматически вызовет $ scope. $ Digest, как только запрос вернёт

Doc: https://docs.angularjs.org/api/ng/service/$http

0 голосов
/ 20 апреля 2019

$scope.$apply(); Должен использоваться в обратном вызове.

...