AngularJS를 사용하여 단일 페이지에있는 여러 양식을 처리하는 방법

Kanishka

저는 AngularJS의 초보자입니다. 사용자 선택에 따라 한 번에 하나씩 만 표시되는 단일 페이지에 여러 양식이 있습니다.

DOM은 즉 두 개의 하위 컨트롤러가 FirstFormController이 SecondFormController이 라는 상위 제어기에서 포장 XceptionController을 . 부모 컨트롤러 함수는 두 자식 모두에서 양식 데이터를 제출하는 데 사용됩니다. 양식 데이터는 상위 컨트롤러의 범위에 저장됩니다. 내 HTML은 아래와 같습니다.

<div ng-app="app">
 <div class="container" ng-controller="XceptionController">
<form class="form-container">
  <select id="select-form" ng-change=selectForm() ng-model="selectedForm">
    <option value="select" disabled selected>Select an Option</option>
    <option value="firstform">Get Firstname</option>
    <option value="secondform">Get Lastname</option>
  </select>
</form>

<div ng-controller="FirstFormController" class="firstform" ng-show="fname">
  <form name="firstnameform">
    <input type="text" name="firstname" ng-model="form.firstname" id="firstname">
    <label for="#firstname">Firstname</label>
  </form>
  <div class="content" ng-show="fname">
    <p>Firstname is {{form.firstname}}</p>
  </div>
</div>
<div ng-controller="SecondFormController" class="secondform" ng-show="lname">
  <form name="lastnameform">
    <input type="text" name="lastname" ng-model="form.lastname" id="lastname">
    <label for="#lastname">Lastname</label>
  </form>
  <div class="content" ng-show="lname">
    <p>Lastname is {{form.lastname}}</p>
  </div>
</div>
<button ng-click="submitForm(form)">Submit</button>

그리고 내 js는 다음과 같습니다.

var app = angular.module('app', []);
app.controller('XceptionController', function($scope){
    $scope.form = {};
    $scope.selectedForm = '';
    $scope.selectForm = function() {
    $scope.lname = 0;
    $scope.fname = 0;
    var foo = angular.element(document.querySelector('#select-form')).val();
    if(foo == 'firstform') {
        $scope.fname = 1;
    }
    else if(foo == 'secondform'){
        $scope.lname = '1';
    }
  };
 $scope.submitForm = function(form){
    //form data
    console.log(form);
 };
});

app.controller('FirstFormController', function($scope){
 $scope.firstname = "";
});

app.controller('SecondFormController', function($scope){
 $scope.lastname = "";
});

그러나 양식을 제출할 때 부모의 범위에 설정했기 때문에 두 양식에서 데이터를 얻습니다. 양식을 제출하고 현재 표시된 양식에 대해서만 양식 데이터를 가져올 수있는 방법이 있습니까? 이 바이올린은 내 질문을 이해하는 데 더 도움이 될 것입니다. https://jsfiddle.net/xmo3ahjq/15/

또한 내 코드가 올바른 방식으로 작성되었는지 또는이를 구현하는 더 좋은 방법이 있는지 아는 데 도움이됩니다. 양식 제출 코드를 별도의 각도 서비스 아래에 배치해야합니까?

비진 ab

var app = angular.module('app', []);
app.controller('XceptionController', function($scope) {
  $scope.form = {};
  $scope.selectedForm = null;
  $scope.selectForm = function() {
    // reset the form model object
    $scope.form = {};
  };
  $scope.isSelected = function(formName) {
    return $scope.selectedForm === formName;
  };
  $scope.submitForm = function(form) {
    // form data
    console.log(form);
  };
});

app.controller('FirstFormController', function($scope) {

});

app.controller('SecondFormController', function($scope) {

});
<div ng-app="app">
  <div class="container" ng-controller="XceptionController">
    <form class="form-container">
      <select id="select-form" ng-change=selectForm() ng-model="selectedForm">
        <option value="" disabled selected>Select an Option</option>
        <option value="firstform">Get Firstname</option>
        <option value="secondform">Get Lastname</option>
      </select>
    </form>

    <div ng-controller="FirstFormController" class="firstform" ng-show="isSelected('firstform')">
      <form name="firstnameform">
        <input type="text" name="firstname" ng-model="form.firstname" id="firstname">
        <label for="#firstname">Firstname</label>
      </form>
      <div class="content">
        <p>Firstname is {{form.firstname}}</p>
      </div>
    </div>
    <div ng-controller="SecondFormController" class="secondform" ng-show="isSelected('secondform')">
      <form name="lastnameform">
        <input type="text" name="lastname" ng-model="form.lastname" id="lastname">
        <label for="#lastname">Lastname</label>
      </form>
      <div class="content">
        <p>Lastname is {{form.lastname}}</p>
      </div>
    </div>
    <button ng-click="submitForm(form)">Submit</button>
  </div>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

jsp : useBean 작업 단계를 사용하여 양식을 처리하는 방법은 무엇입니까?

분류에서Dev

Spring Batch를 사용하여 여러 CSV 형식 파일을 처리하는 방법

분류에서Dev

JPA 쿼리를 사용하여 단일 양식을 업데이트하는 방법

분류에서Dev

vue.js를 사용하여 동적 양식을 처리하는 방법

분류에서Dev

Not selector : : not ()을 사용하여 WordPress에서 CSS 사용자 정의 양식에서 단일 페이지를 제외하는 방법은 무엇입니까?

분류에서Dev

여러 인터페이스 구현에 단일 레지스트리를 사용하여 C ++에서 "레지스트리 패턴"을 구현하는 방법

분류에서Dev

단일 페이지에서 PHP에서 여러 단계로 여러 양식을 만드는 방법

분류에서Dev

vb.net-SUB를 사용하여 동일한 양식을 여러 번 여는 방법

분류에서Dev

단일 양식을 사용하여 여러 모델을 업데이트하는 방법

분류에서Dev

동일한 페이지에 여러 양식이있을 때 한 양식에서 AJAX를 사용하여 데이터를 게시하는 방법은 무엇입니까?

분류에서Dev

XSL을 사용하여 병합 한 후 여러 XML 파일의 모든 데이터를 처리하는 방법

분류에서Dev

단일 쿼리를 사용하여 여러 테이블을 쿼리하는 방법은 무엇입니까?

분류에서Dev

PHP를 사용하여 다른 페이지의 여러 값에서 다음 페이지에서 단일 값을 얻는 방법

분류에서Dev

picocli를 사용하여 여러 유형의 옵션을 처리하는 방법

분류에서Dev

Keras를 사용하여 여러 입력과 단일 출력이있는 모델을 빌드하는 방법

분류에서Dev

Express JS에서 페이지를 새로 고치지 않고 POST를 사용하여 한 페이지에 여러 양식을 제출하는 방법

분류에서Dev

Grunt 및 / 또는 Gulp를 사용하여 여러 파일을 여러 출력으로보고 처리하는 방법 (동일한 방법)?

분류에서Dev

Vuejs-단일 양식을 사용하여 추가 및 편집하는 방법

분류에서Dev

django에서 여러 양식 제출을 처리하는 방법

분류에서Dev

cx_freeze를 사용하여 Python에서 여러 파일로 단일 .exe 파일을 빌드하는 방법

분류에서Dev

filepicker.io를 사용하여 동일한 페이지에 여러 드롭 창을 만드는 방법

분류에서Dev

종이 클립을 사용하여 여러 파일 형식을 처리하는 방법

분류에서Dev

ggplot을 사용하여 단일 패싯에서 여러 빈 너비를 사용하는 방법

분류에서Dev

PHP 루프에서 여러 양식이있는 경우 AJAX를 통해 단일 양식을 제출하는 방법

분류에서Dev

하나의 양식이 다른 양식에 링크되는 flask 및 WTForms를 사용하여 단일 페이지에 여러 양식

분류에서Dev

sed 또는 awk를 사용하여 정규식과 일치하는 여러 줄을 주석 처리하는 방법

분류에서Dev

PHP 양식을 사용하여 한 번에 여러 이미지를 ulpload하는 방법은 무엇입니까?

분류에서Dev

단일 벡터를 사용하여 여러 열이있는 행렬을 만드는 방법

분류에서Dev

sftp를 사용하여 여러 파일을 넣는 방법

Related 관련 기사

  1. 1

    jsp : useBean 작업 단계를 사용하여 양식을 처리하는 방법은 무엇입니까?

  2. 2

    Spring Batch를 사용하여 여러 CSV 형식 파일을 처리하는 방법

  3. 3

    JPA 쿼리를 사용하여 단일 양식을 업데이트하는 방법

  4. 4

    vue.js를 사용하여 동적 양식을 처리하는 방법

  5. 5

    Not selector : : not ()을 사용하여 WordPress에서 CSS 사용자 정의 양식에서 단일 페이지를 제외하는 방법은 무엇입니까?

  6. 6

    여러 인터페이스 구현에 단일 레지스트리를 사용하여 C ++에서 "레지스트리 패턴"을 구현하는 방법

  7. 7

    단일 페이지에서 PHP에서 여러 단계로 여러 양식을 만드는 방법

  8. 8

    vb.net-SUB를 사용하여 동일한 양식을 여러 번 여는 방법

  9. 9

    단일 양식을 사용하여 여러 모델을 업데이트하는 방법

  10. 10

    동일한 페이지에 여러 양식이있을 때 한 양식에서 AJAX를 사용하여 데이터를 게시하는 방법은 무엇입니까?

  11. 11

    XSL을 사용하여 병합 한 후 여러 XML 파일의 모든 데이터를 처리하는 방법

  12. 12

    단일 쿼리를 사용하여 여러 테이블을 쿼리하는 방법은 무엇입니까?

  13. 13

    PHP를 사용하여 다른 페이지의 여러 값에서 다음 페이지에서 단일 값을 얻는 방법

  14. 14

    picocli를 사용하여 여러 유형의 옵션을 처리하는 방법

  15. 15

    Keras를 사용하여 여러 입력과 단일 출력이있는 모델을 빌드하는 방법

  16. 16

    Express JS에서 페이지를 새로 고치지 않고 POST를 사용하여 한 페이지에 여러 양식을 제출하는 방법

  17. 17

    Grunt 및 / 또는 Gulp를 사용하여 여러 파일을 여러 출력으로보고 처리하는 방법 (동일한 방법)?

  18. 18

    Vuejs-단일 양식을 사용하여 추가 및 편집하는 방법

  19. 19

    django에서 여러 양식 제출을 처리하는 방법

  20. 20

    cx_freeze를 사용하여 Python에서 여러 파일로 단일 .exe 파일을 빌드하는 방법

  21. 21

    filepicker.io를 사용하여 동일한 페이지에 여러 드롭 창을 만드는 방법

  22. 22

    종이 클립을 사용하여 여러 파일 형식을 처리하는 방법

  23. 23

    ggplot을 사용하여 단일 패싯에서 여러 빈 너비를 사용하는 방법

  24. 24

    PHP 루프에서 여러 양식이있는 경우 AJAX를 통해 단일 양식을 제출하는 방법

  25. 25

    하나의 양식이 다른 양식에 링크되는 flask 및 WTForms를 사용하여 단일 페이지에 여러 양식

  26. 26

    sed 또는 awk를 사용하여 정규식과 일치하는 여러 줄을 주석 처리하는 방법

  27. 27

    PHP 양식을 사용하여 한 번에 여러 이미지를 ulpload하는 방법은 무엇입니까?

  28. 28

    단일 벡터를 사용하여 여러 열이있는 행렬을 만드는 방법

  29. 29

    sftp를 사용하여 여러 파일을 넣는 방법

뜨겁다태그

보관