AngularJS_AngularJS를 사용하여 라디오 버튼과 체크박스를 처리하는 간단한 방법

WBOY
풀어 주다: 2016-05-16 15:53:52
원래의
1137명이 탐색했습니다.

AngularJS의 양식 처리는 매우 간단합니다. AngularJS가 양식 유효성 검사를 위해 양방향 데이터 바인딩을 사용하면 본질적으로 양식 처리에 도움이 됩니다.

체크박스를 사용하는 예는 많고 이를 처리할 수 있는 방법도 많습니다. 이 글에서는 체크박스와 라디오 버튼을 데이터 변수에 바인딩하는 방법과 이를 통해 무엇을 할 수 있는지 살펴보겠습니다.

Angular 형태 만들기

이 기사에는 index.html과 app.js라는 두 개의 파일이 필요합니다. app.js는 모든 Angular 코드가 보관되는 곳이고(크지는 않음) index.html은 작업이 실행되는 곳입니다. 먼저 AngularJS 파일을 만듭니다.

// app.js
 
var formApp = angular.module('formApp', [])
 
  .controller('formController', function($scope) {
  
    // we will store our form data in this object
    $scope.formData = {};
     
  });
로그인 후 복사

이 파일에서 우리가 하는 일은 Angular 애플리케이션을 만드는 것뿐입니다. 또한 모든 양식 데이터를 보유하는 컨트롤러와 개체를 만들었습니다.

index.html 파일을 살펴보겠습니다. 이 파일에서는 폼을 생성한 후 데이터 바인딩을 수행합니다. 우리는 페이지 레이아웃을 빠르게 하기 위해 Bootstrap을 사용했습니다.

<-- index.html -->
<!DOCTYPE html>
<html>
<head>
 
  <!-- CSS -->
  <!-- load up bootstrap and add some spacing -->
  <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
  <style>
    body     { padding-top:50px; }
    form      { margin-bottom:50px; }
  </style>
 
  <!-- JS -->
  <!-- load up angular and our custom script -->
  <script src="http://code.angularjs.org/1.2.13/angular.js"></script>
  <script src="app.js"></script>
</head>
 
<!-- apply our angular app and controller -->
<body ng-app="formApp" ng-controller="formController">
<div class="col-xs-12 col-sm-10 col-sm-offset-1">
 
  <h2>Angular Checkboxes and Radio Buttons</h2>
 
  <form>
   
    <!-- NAME INPUT -->
    <div class="form-group">
      <label>Name</label>
      <input type="text" class="form-control" name="name" ng-model="formData.name">
    </div>
     
    <!-- =============================================== -->
    <!-- ALL OUR CHECKBOXES AND RADIO BOXES WILL GO HERE -->
    <!-- =============================================== -->
     
    <!-- SUBMIT BUTTON (DOESNT DO ANYTHING) -->
    <button type="submit" class="btn btn-danger btn-lg">Send Away!</button>
     
  </form>
   
  <!-- SHOW OFF OUR FORMDATA OBJECT -->
  <h2>Sample Form Object</h2>
  <pre class="brush:php;toolbar:false">
    {{ formData }}
  
로그인 후 복사

생성이 완료되면 이름을 입력하는 양식이 나옵니다. 모든 것이 예상대로 작동한다면 이름 입력에 무언가를 입력하면 아래의

 태그 섹션에서 확인할 수 있습니다.<br />
<br />
<strong>체크박스</strong></p>
<p>체크박스는 양식에서 매우 일반적입니다. 다음으로 Angular가 ngModel을 사용하여 데이터 바인딩을 구현하는 방법을 살펴보겠습니다. 확인란이 많으면 데이터를 개체에 바인딩할 때 데이터를 처리하는 방법이 부담스러울 수 있습니다. </p>
<p>우리가 생성한 formData 객체 안에 또 다른 객체도 생성했습니다. 이것을 favoriteColors라고 부르며 사용자에게 좋아하는 색상을 선택하라고 요청합니다. <br />
<br />
</p>
<div class="jb51code">
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;">
<!-- MULTIPLE CHECKBOXES -->
<label>Favorite Colors</label>
<div class="form-group">
  <label class="checkbox-inline">
    <input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.red"> Red
  </label>
  <label class="checkbox-inline">
    <input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.blue"> Blue
  </label>
  <label class="checkbox-inline">
    <input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.green"> Green
  </label>
</div>
로그인 후 복사

사용자가 위의 확인란 중 하나를 클릭하면 formData 개체가 변경되는 것을 즉시 확인할 수 있습니다. fromData.favoriteColors 객체에 체크박스 값을 저장합니다. 이런 방식으로 체크박스 값을 서버에 전달합니다.

체크박스 클릭 처리

때때로 누군가가 체크박스를 클릭한 후 누군가와 함께 작업을 수행해야 하는 경우가 있습니다. 수행해야 할 처리는 값 계산, 일부 변수 변경, 데이터 바인딩 수행 등일 수 있습니다. 이를 수행하려면 $scope.yourFunction = function() {};을 사용하여 app.js 내에서 함수를 생성합니다. 그런 다음 확인란에서 ng-click="yourFunction()"을 사용하여 이 함수를 호출할 수 있습니다.

양식 체크박스를 처리하는 방법은 여러 가지가 있으며 Angular는 매우 간단한 방법을 제공합니다. 즉, ng-click을 사용하여 사용자 정의 함수를 호출하는 것입니다.

체크박스에 해당하는 값을 맞춤설정

기본적으로 체크박스에 바인딩된 값은 true 또는 false입니다. 때로는 다른 값을 반환하고 싶을 때도 있습니다. Angular는 ng-ture-value 및 ng-false-value를 사용하여 이를 처리하는 아주 좋은 방법을 제공합니다.

또 다른 확인란 세트를 추가하지만 이번에는 더 이상 true 또는 false를 사용하지 않고 사용자 정의 값을 사용합니다.

<!-- CUSTOM VALUE CHECKBOXES -->
<label>Personal Question</label>
<div class="checkbox">
  <label>
    <input type="checkbox" name="awesome" ng-model="formData.awesome" ng-true-value="ofCourse" ng-false-value="iWish">
    Are you awesome&#63;
  </label>
</div>
로그인 후 복사

또한 이제 formData 개체에 멋진 변수를 추가했습니다. 이때 이 값을 true로 설정하면 반환값은 ofCourse가 되어야 하며, false로 설정하면 반환값은 iWish가 되어야 합니다.

체크박스

공식 문서에 따르면 이는 라디오 버튼과 다릅니다.

<input type="radio"
  ng-model="string"
  value="string"
  [name="string"]
  [ng-change="string"]
  ng-value="string">
로그인 후 복사

체크박스에 대해 자세히 알아보려면 Angular 체크박스 문서를 참조하세요.
라디오 버튼

라디오 버튼은 객관식 데이터를 저장할 필요가 없기 때문에 체크박스보다 쉽습니다. 라디오 버튼을 추가하여 살펴보겠습니다.

<!-- RADIO BUTTONS -->
<label>Chicken or the Egg&#63;</label>
<div class="form-group">
  <div class="radio">
    <label>
      <input type="radio" name="chickenEgg" value="chicken" ng-model="formData.chickenEgg">
      Chicken
    </label>
  </div>
  <div class="radio">
    <label>
      <input type="radio" name="chickenEgg" value="egg" ng-model="formData.chickenEgg">
      Egg
    </label>
  </div>
</div>
로그인 후 복사

이와 같이 라디오 버튼이 데이터 객체에 바인딩됩니다.

라디오 버튼 사용법

공식 문서에 따르면 다음과 같은 옵션이 제공됩니다.

<input type="radio"
    ng-model="string"
    value="string"
    [name="string"]
    [ng-change="string"]
    ng-value="string">
로그인 후 복사

관련 라벨:
원천:php.cn
이전 기사:JQuery_jquery로 구현된 이미지 및 텍스트 자동 회전판 효과 플러그인 다음 기사:AngularJS_AngularJS 아래의 URL에서 # 문자를 제거하는 방법
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
최신 이슈
관련 주제
더>
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿