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-model
dyrektywy.
<input type="text" ng-model="firstname">
Aplikacja ma teraz właściwość o nazwie firstname
.
Dyrektywa ng-model
wiąże kontroler wejściowy z resztą aplikacji.
Do nieruchomości firstname
moż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ść true
lub false
. Zastosuj
ng-model
dyrektywę 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-model
wartoś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
, tuts
lub
cars
.
Pole wyboru
Powiąż pola wyboru z aplikacją za pomocą ng-model
dyrektywy.
Właściwość zdefiniowana w ng-model
atrybucie 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
, tuts
lub
cars
.
Przykład formularza AngularJS
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.