요청이 성공적으로 반환 될 때 단추 텍스트 변경 문제

tracyak13

세 가지 상태가있는 제출 버튼이있는 문의 양식을 만들고 있습니다.

  1. 보내다
  2. 배상
  3. 보냄

버튼의 HTML은 다음과 같습니다.

<button type="submit" class="btn btn-default" ng-class="{'btn-success': 
 stateText === 'Sent'}" ng-click="submit()">{{stateText}}</button>

다음은 컨트롤러 코드입니다.

angular.module('contact')
.controller('contactController', function($scope) {

 $scope.data = {
  fullName: undefined,
  email: undefined,
  phone: undefined,
  message: undefined,
 };

 $scope.noEmailProvided = undefined;
 $scope.emailSent = undefined;
 $scope.stateText = 'Send';

 $scope.submit = function() {
   if (!$scope.data.email) {
     $scope.noEmailProvided = true;
     return;
   }

  $scope.stateText = 'Sending';

  emailjs.send("server","contactus", {
   fullName: $scope.data.fullName,
   email: $scope.data.email,
   phone: $scope.data.phone,
   message: $scope.data.message
  })
 .then(function(response) {
  $scope.emailSent = true;
  $scope.stateText = 'Sent';
   console.log("SUCCESS. status=%d, text=%s", response.status, response.text);
 }, function(err) {
   console.log("FAILED. error=", err);
 });
 }
});

초기 "Send"상태는 작동하고 두 번째 "Sending"상태는 작동하지만 요청이 성공적으로 반환 될 때 변경 될 것으로 예상되는 "Sent"상태는 작동하지 않습니다. 중단 점을 설정했고 $scope.stateText할당이 성공적으로 발생했지만 텍스트가 뷰에서 렌더링되지 않습니다.

tracyak13

문제를 식별 할 수있는 Angular 전문가와 함께 문제를 해결했습니다. 버튼을 클릭 할 때 이메일을 보내기 위해 emailJS 라는 타사 서비스를 사용하고 있습니다. 이 제 3자는 Angular의 $ http 서비스를 사용하지 않으므로 요청이 반환 될 때 다이제스트주기를 트리거하지 않습니다. $ scope. $ evalAsync를 호출하면 Angular가 큐에 다이제스트주기를 추가하고 범위를 업데이트하도록합니다. 기능 코드는 다음과 같습니다.

emailjs.send("smtp_server","contactus", {
  fullName: $scope.data.fullName,
  email: $scope.data.email,
  phone: $scope.data.phone,
  message: $scope.data.message
})
.then(function(response) {
  $scope.$evalAsync(function () {
    $scope.emailSent = true;
    $scope.stateText = 'Sent';
  });

   console.log("SUCCESS. status=%d, text=%s", response.status, response.text, $scope.stateText);
}, function(err) {
   console.log("FAILED. error=", err);
});

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

스크립트 코드에 의해 텍스트가 변경 될 때 입력에 대한 자바 스크립트 스택 추적을 반환합니다.

분류에서Dev

상태가 변경 될 때 텍스트 필드 업데이트 전체 구성 요소에 대한 onChange 반응

분류에서Dev

PHP 반환이 변경 될 때 javascript로 html 코드 업데이트

분류에서Dev

텍스트 상자의 내용이 변경 될 때 자동으로 양식 제출

분류에서Dev

스팬 내의 텍스트가 안드로이드에서 변경 될 때 범위를 제거

분류에서Dev

URL에서 스트림을 읽어야하며 "No records found"문자열이 반환 될 때까지 URI의 "page"속성을 변경해야합니다.

분류에서Dev

Android 챗봇의 입력으로 텍스트에 음성을 제공 할 때 내 텍스트 음성 변환이 작동하지 않습니다.

분류에서Dev

양식이 제출 될 때 동적으로 생성 된 html 입력 텍스트 상자 검색

분류에서Dev

텍스처 크기가 변경 될 때 UV 매핑 문제

분류에서Dev

.bashrc의 환경 변수가 terraform 스크립트에서 제공 될 때로드되지 않음

분류에서Dev

날짜 문자열이 NSDate 개체로 변환 될 때 NSDateFormatter 문제

분류에서Dev

컨텍스트가로드 될 때 속성 파일을로드하여 파일 경로를 다른 속성 파일의 속성으로 제공합니다.

분류에서Dev

아이콘이 변경 될 때 TabWidget에 텍스트 유지

분류에서Dev

크기가 간접적으로 변경 될 때 <div> 전환이 트리거되지 않음

분류에서Dev

설정이 회색으로 표시 될 때 Visual Studio의 텍스트 편집기에서 "변경 내용 추적"기능을 활성화하려면 어떻게해야합니까?

분류에서Dev

GET 요청이 반환 될 때 $ q가 업데이트되지 않음

분류에서Dev

상태가 변경 될 때 반응 컨텍스트가 래핑 된 요소에 어떤 영향을 줍니까?

분류에서Dev

런타임에 동적으로 추가 될 때 ext js 구성 요소의 표시 문제

분류에서Dev

공급자 구성 요소 부모 상태가 변경 될 때 자식 구성 요소 (반응 컨텍스트 포함)의 값을 업데이트 할 수없는 이유는 무엇입니까?

분류에서Dev

행이 동적으로 추가 될 때 양식의 변경 사항 감지

분류에서Dev

ObservableCollection이 변경 될 때마다 UI를 업데이트하지 않는 문제

분류에서Dev

Realtime Firebase로 센서 값이 변경 될 때마다 추적 할 StreamBuilder 생성

분류에서Dev

서버 측으로 변경 될 때 레이블 텍스트를 어떻게 얻습니까?

분류에서Dev

useState 배열 요소가 변경 될 때 반응 텍스트 입력이 변경되지 않는 이유는 무엇입니까?

분류에서Dev

EFCore 5.0 : DbContext가 삭제 될 때 추적기 변경 (DbContext 수명)

분류에서Dev

텍스트 상자의 텍스트가 변경 될 때 정적 바인딩 된 속성의 값을 업데이트 할 수 없습니다.

분류에서Dev

종료 조건이 충족 될 때까지 http 요청의 결과에 따라 텍스트를 지속적으로 변경하려면 어떻게해야합니까?

분류에서Dev

AngularJS의 다른 구성 요소에서 호출 될 때 Modal 호출 Button의 텍스트 변경

분류에서Dev

페이지가로드 될 때 <li> 클래스를 활성으로 변경

Related 관련 기사

  1. 1

    스크립트 코드에 의해 텍스트가 변경 될 때 입력에 대한 자바 스크립트 스택 추적을 반환합니다.

  2. 2

    상태가 변경 될 때 텍스트 필드 업데이트 전체 구성 요소에 대한 onChange 반응

  3. 3

    PHP 반환이 변경 될 때 javascript로 html 코드 업데이트

  4. 4

    텍스트 상자의 내용이 변경 될 때 자동으로 양식 제출

  5. 5

    스팬 내의 텍스트가 안드로이드에서 변경 될 때 범위를 제거

  6. 6

    URL에서 스트림을 읽어야하며 "No records found"문자열이 반환 될 때까지 URI의 "page"속성을 변경해야합니다.

  7. 7

    Android 챗봇의 입력으로 텍스트에 음성을 제공 할 때 내 텍스트 음성 변환이 작동하지 않습니다.

  8. 8

    양식이 제출 될 때 동적으로 생성 된 html 입력 텍스트 상자 검색

  9. 9

    텍스처 크기가 변경 될 때 UV 매핑 문제

  10. 10

    .bashrc의 환경 변수가 terraform 스크립트에서 제공 될 때로드되지 않음

  11. 11

    날짜 문자열이 NSDate 개체로 변환 될 때 NSDateFormatter 문제

  12. 12

    컨텍스트가로드 될 때 속성 파일을로드하여 파일 경로를 다른 속성 파일의 속성으로 제공합니다.

  13. 13

    아이콘이 변경 될 때 TabWidget에 텍스트 유지

  14. 14

    크기가 간접적으로 변경 될 때 <div> 전환이 트리거되지 않음

  15. 15

    설정이 회색으로 표시 될 때 Visual Studio의 텍스트 편집기에서 "변경 내용 추적"기능을 활성화하려면 어떻게해야합니까?

  16. 16

    GET 요청이 반환 될 때 $ q가 업데이트되지 않음

  17. 17

    상태가 변경 될 때 반응 컨텍스트가 래핑 된 요소에 어떤 영향을 줍니까?

  18. 18

    런타임에 동적으로 추가 될 때 ext js 구성 요소의 표시 문제

  19. 19

    공급자 구성 요소 부모 상태가 변경 될 때 자식 구성 요소 (반응 컨텍스트 포함)의 값을 업데이트 할 수없는 이유는 무엇입니까?

  20. 20

    행이 동적으로 추가 될 때 양식의 변경 사항 감지

  21. 21

    ObservableCollection이 변경 될 때마다 UI를 업데이트하지 않는 문제

  22. 22

    Realtime Firebase로 센서 값이 변경 될 때마다 추적 할 StreamBuilder 생성

  23. 23

    서버 측으로 변경 될 때 레이블 텍스트를 어떻게 얻습니까?

  24. 24

    useState 배열 요소가 변경 될 때 반응 텍스트 입력이 변경되지 않는 이유는 무엇입니까?

  25. 25

    EFCore 5.0 : DbContext가 삭제 될 때 추적기 변경 (DbContext 수명)

  26. 26

    텍스트 상자의 텍스트가 변경 될 때 정적 바인딩 된 속성의 값을 업데이트 할 수 없습니다.

  27. 27

    종료 조건이 충족 될 때까지 http 요청의 결과에 따라 텍스트를 지속적으로 변경하려면 어떻게해야합니까?

  28. 28

    AngularJS의 다른 구성 요소에서 호출 될 때 Modal 호출 Button의 텍스트 변경

  29. 29

    페이지가로드 될 때 <li> 클래스를 활성으로 변경

뜨겁다태그

보관