Formularze AngularJS


Formularze w AngularJS zapewniają wiązanie danych i walidację kontrolek wejściowych.


Kontrola wejścia

Kontrolki wejściowe to elementy wejściowe HTML:

  • elementy wejściowe
  • wybierz elementy
  • elementy przycisków
  • elementy obszaru tekstowego

Wiązanie danych

Kontrolki wejściowe zapewniają powiązanie danych za pomocą ng-modeldyrektywy.

<input type="text" ng-model="firstname">

Aplikacja ma teraz właściwość o nazwie firstname.

Dyrektywa ng-modelwiąże kontroler wejściowy z resztą aplikacji.

Do nieruchomości firstnamemożna się odnieść w kontrolerze:

Przykład

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
  $scope.firstname = "John";
});
</script>

Można do niego również odnieść się w innym miejscu we wniosku:

Przykład

<form>
  First Name: <input type="text" ng-model="firstname">
</form>

<h1>You entered: {{firstname}}</h1>


Pole wyboru

Pole wyboru ma wartość truelub false. Zastosuj ng-modeldyrektywę do pola wyboru i użyj jej wartości w swojej aplikacji.

Przykład

Pokaż nagłówek, jeśli pole wyboru jest zaznaczone:

 <form>
  Check to show a header:
  <input type="checkbox" ng-model="myVar">
</form>

<h1 ng-show="myVar">My Header</h1>

Przyciski radiowe

Powiąż przyciski radiowe z aplikacją za pomocą ng-model dyrektywy.

Przyciski radiowe o tych samych ng-modelwartościach mogą mieć różne wartości, ale zostanie użyty tylko ten wybrany.

Przykład

Wyświetl tekst na podstawie wartości wybranego przycisku radiowego:

<form>
  Pick a topic:
  <input type="radio" ng-model="myVar" value="dogs">Dogs
  <input type="radio" ng-model="myVar" value="tuts">Tutorials
  <input type="radio" ng-model="myVar" value="cars">Cars
</form>

Wartością myVar będzie dogs, tutslub cars.


Pole wyboru

Powiąż pola wyboru z aplikacją za pomocą ng-model dyrektywy.

Właściwość zdefiniowana w ng-modelatrybucie będzie miała wartość wybranej opcji w polu wyboru.

 Przykład

Wyświetl tekst na podstawie wartości wybranej opcji:

<form>
  Select a topic:
  <select ng-model="myVar">
    <option value="">
    <option value="dogs">Dogs
    <option value="tuts">Tutorials
    <option value="cars">Cars
  </select>
</form>

Wartością myVar będzie dogs, tutslub cars.


Przykład formularza AngularJS

Imię:

Nazwisko:


form = {"firstName":"Jan","lastName":"Kowalski"}

master = {"firstName":"Jan","lastName":"Kowalski"}


Kod aplikacji

<div ng-app="myApp" ng-controller="formCtrl">
  <form novalidate>
    First Name:<br>
    <input type="text" ng-model="user.firstName"><br>
    Last Name:<br>
    <input type="text" ng-model="user.lastName">
    <br><br>
    <button ng-click="reset()">RESET</button>
  </form>
  <p>form = {{{user}}</p>
  <p>master = {{{master}}</p>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
  $scope.master = {firstName: "John", lastName: "Doe"};
  $scope.reset = function() {
    $scope.user = angular.copy($scope.master);
  };
  $scope.reset();
});
</script>

Atrybut novalidate to nowość w HTML5. Wyłącza wszelkie domyślne sprawdzanie poprawności przeglądarki.


Przykład wyjaśniony

Dyrektywa ng-app definiuje aplikację AngularJS.

Dyrektywa ng-controller definiuje kontroler aplikacji.

Dyrektywa ng-model wiąże dwa elementy wejściowe z obiektem użytkownika w modelu.

Kontroler formCtrl ustawia wartości początkowe dla obiektu głównego i definiuje metodę reset() .

Metoda reset() ustawia obiekt użytkownika równy obiektowi głównemu .

Dyrektywa ng-click wywołuje metodę reset() tylko po kliknięciu przycisku.

Atrybut novalidate nie jest potrzebny dla tej aplikacji, ale zwykle będziesz go używać w formularzach AngularJS, aby przesłonić standardową walidację HTML5.