AngularJS-바인딩 된 객체의 상태 재설정

NewZeroRiot

사용자가 책을 클릭하면 새로운 모달이 열립니다. 책을 편집 할 수있는 곳. 양방향 바인딩을 사용하고 있기 때문에 모달에 입력하면 '디스플레이 페이지'가 자동으로 변경됩니다.

그러나 내가하고 싶은 것은 사용자가 취소 버튼을 누를 수 있도록 허용하는 것입니다. 그러면 책의 상태가 변경되기 전의 상태로 돌아갑니다. 돌아가서 전체 $ scope.books 객체를 재설정하지 않고도 Angular에서 가능합니까?

실제 응용 프로그램에서 이것은 API 호출이 될 것이며, 물론 완전히 필요한 경우가 아니면 다른 서버 호출을 작성하지 않을 것입니다. 이미 이것을 처리하는 패턴이 있습니까?

(function(){
    var app = angular.module('ngModalDemo', ['ui.bootstrap']) 
    .controller('formController', function($scope, $modal, $log){

        $scope.books = [
            { Id: 1, Name:'A Feast For Crows'},
            { Id: 2, Name:'Before they are Hanged'}
        ];

        $scope.openModal = function (currentBook) {             
            var modalInstance = $modal.open({
                templateUrl: 'SomeModal.html',
                controller: [
                    '$scope', '$modalInstance', function($scope, $modalInstance){
                        $scope.editBook = currentBook;
                        $scope.saveModal = function (book) {
                            $modalInstance.close();
                        };
                        $scope.cancelModal = function () {
                            //  Restore the previous state here!
                            $modalInstance.close();
                        };
                    }]
            });
        };
    })
})();

<div ng-controller="formController">

    <p ng-repeat="displayBook in books">
         <a href="#" ng-click="openModal(displayBook)">{{displayBook.Name}}</a>
    </p>    

    <script type="text/ng-template" id="SomeModal.html">
        <form name="editForm" ng-submit="saveModal(editBook)" noValidate>
            <div class="modal-header">
                Name: <input ng-model="editBook.Name" required /><br />
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-warning" ng-click="cancelModal()">Cancel</button>
                <button class="btn btn-info" ng-disabled="editForm.$dirty && editForm.$invalid">Save</button>
            </div>
        </form> 
    </script>
</div>
Eladcon

임시로 개체의 전체 복사본을 만든 다음 필요한 경우 다시 설정할 수 있습니다.

var temp = angular.copy(currentBook);
$scope.editBook = currentBook;
$scope.saveModal = function (book) {
    $modalInstance.close();
};
$scope.cancelModal = function () {
    //  Restore the previous state here!
    angular.copy(temp, $scope.editBook);
    $modalInstance.close();
};

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

재정의 된 변수가 AngularJS에서 바인딩되지 않음

분류에서Dev

상태와 뷰에 지정된 AngularJS UI 라우터 매개 변수 객체의 차이점

분류에서Dev

정의 된 시간 후에 원래 상태로 재설정

분류에서Dev

Promise에서 바인딩 된 매개 변수의 상태

분류에서Dev

모의 객체에 대한 변경된 상태 어설 션

분류에서Dev

중첩 된 개체 상태 설정

분류에서Dev

레이블 값을 목록 상자에 바인딩 된 지정된 개체의 속성 값으로 설정합니다.

분류에서Dev

AngularJS 바인딩. 동일한 객체의 속성 체인에 대해 얼마나 많은 감시를 설정합니까?

분류에서Dev

C # WPF Datagrid-데이터 바인딩 된 콤보 상자의 기본 선택 값 설정

분류에서Dev

tkinter 목록 상자에서 미리 정의 된 키 바인딩 함수를 교체합니다.

분류에서Dev

AngularJS의 json 객체에서 선택 드롭 다운 바인딩

분류에서Dev

ngFor Angular 2의 입력 유형 확인란에 확인 된 상태 설정

분류에서Dev

AngularJS-바인딩 된 값의 부분 정보를 추출하거나 조작하고 표시하는 방법

분류에서Dev

Ninject 재정의 바인딩

분류에서Dev

필터가 활성화 된 상태에서 바인딩 된 DataGridView의 변경 사항 저장

분류에서Dev

사전 태그 내의 AngularJS 데이터 바인딩

분류에서Dev

설정된 상태에서 객체 배열을 업데이트하는 방법

분류에서Dev

설정된 상태에서 객체 배열을 업데이트하는 방법

분류에서Dev

NSCollectionView에서 NSCheckBoxes의 확인 된 상태 및 문자열 값 모두에 바인딩

분류에서Dev

자식의 "체크 된"상태에 따라 객체 배열을 재귀 적으로 탐색합니다.

분류에서Dev

전달 된 모의 객체에 대한 설정 확인

분류에서Dev

데이터 바인딩 된 객체에 대한 Angular 성능 제한 : 지금 AngularJS를 포기합니까?

분류에서Dev

객체의 앱 상태 배열을 수정하는 자바 스크립트

분류에서Dev

바인딩 된 ComboBox에서 null 값을 설정할 때 이상한 동작

분류에서Dev

App Engine의 appcfg 인증 상태를 어떻게 재설정하나요?

분류에서Dev

AngularJs 항상 범위 배열을 정렬 된 상태로 유지

분류에서Dev

바인딩 된 객체가 만료 될 때 std :: bind에 의해 생성 된 펑터의 동작이 잘 정의되어 있습니까?

분류에서Dev

객체 생성자에 설정된 객체 상태가 모든 스레드에서 볼 수 있습니까?

분류에서Dev

안드로이드 데이터 바인딩 : 없음 반환 문을 생성 된 코드에 두 번 이상 어댑터 바인딩 정의를 호출 할 때

Related 관련 기사

  1. 1

    재정의 된 변수가 AngularJS에서 바인딩되지 않음

  2. 2

    상태와 뷰에 지정된 AngularJS UI 라우터 매개 변수 객체의 차이점

  3. 3

    정의 된 시간 후에 원래 상태로 재설정

  4. 4

    Promise에서 바인딩 된 매개 변수의 상태

  5. 5

    모의 객체에 대한 변경된 상태 어설 션

  6. 6

    중첩 된 개체 상태 설정

  7. 7

    레이블 값을 목록 상자에 바인딩 된 지정된 개체의 속성 값으로 설정합니다.

  8. 8

    AngularJS 바인딩. 동일한 객체의 속성 체인에 대해 얼마나 많은 감시를 설정합니까?

  9. 9

    C # WPF Datagrid-데이터 바인딩 된 콤보 상자의 기본 선택 값 설정

  10. 10

    tkinter 목록 상자에서 미리 정의 된 키 바인딩 함수를 교체합니다.

  11. 11

    AngularJS의 json 객체에서 선택 드롭 다운 바인딩

  12. 12

    ngFor Angular 2의 입력 유형 확인란에 확인 된 상태 설정

  13. 13

    AngularJS-바인딩 된 값의 부분 정보를 추출하거나 조작하고 표시하는 방법

  14. 14

    Ninject 재정의 바인딩

  15. 15

    필터가 활성화 된 상태에서 바인딩 된 DataGridView의 변경 사항 저장

  16. 16

    사전 태그 내의 AngularJS 데이터 바인딩

  17. 17

    설정된 상태에서 객체 배열을 업데이트하는 방법

  18. 18

    설정된 상태에서 객체 배열을 업데이트하는 방법

  19. 19

    NSCollectionView에서 NSCheckBoxes의 확인 된 상태 및 문자열 값 모두에 바인딩

  20. 20

    자식의 "체크 된"상태에 따라 객체 배열을 재귀 적으로 탐색합니다.

  21. 21

    전달 된 모의 객체에 대한 설정 확인

  22. 22

    데이터 바인딩 된 객체에 대한 Angular 성능 제한 : 지금 AngularJS를 포기합니까?

  23. 23

    객체의 앱 상태 배열을 수정하는 자바 스크립트

  24. 24

    바인딩 된 ComboBox에서 null 값을 설정할 때 이상한 동작

  25. 25

    App Engine의 appcfg 인증 상태를 어떻게 재설정하나요?

  26. 26

    AngularJs 항상 범위 배열을 정렬 된 상태로 유지

  27. 27

    바인딩 된 객체가 만료 될 때 std :: bind에 의해 생성 된 펑터의 동작이 잘 정의되어 있습니까?

  28. 28

    객체 생성자에 설정된 객체 상태가 모든 스레드에서 볼 수 있습니까?

  29. 29

    안드로이드 데이터 바인딩 : 없음 반환 문을 생성 된 코드에 두 번 이상 어댑터 바인딩 정의를 호출 할 때

뜨겁다태그

보관