AngularJS Forms
Formuláře v AngularJS poskytují vazbu dat a ověřování vstupních ovládacích prvků.
Vstupní ovládací prvky
Ovládací prvky vstupu jsou vstupní prvky HTML:
- vstupní prvky
- vybrat prvky
- tlačítkové prvky
- prvky textové oblasti
Data-Binding
Vstupní ovládací prvky poskytují vazbu dat pomocí
ng-model
směrnice.
<input type="text" ng-model="firstname">
Aplikace má nyní vlastnost s názvem firstname
.
Direktiva ng-model
spojuje vstupní řadič se zbytkem vaší aplikace.
Na vlastnost firstname
lze odkazovat v ovladači:
Příklad
<script>
var app = angular.module('myApp', []);
app.controller('formCtrl',
function($scope) {
$scope.firstname = "John";
});
</script>
Může být také odkazováno na jiném místě aplikace:
Příklad
<form>
First Name: <input type="text" ng-model="firstname">
</form>
<h1>You entered: {{firstname}}</h1>
Zaškrtávací políčko
Zaškrtávací políčko má hodnotu true
nebo false
. Použijte
ng-model
direktivu na zaškrtávací políčko a použijte její hodnotu ve své aplikaci.
Příklad
Zobrazit záhlaví, pokud je políčko zaškrtnuté:
<form>
Check to show a header:
<input type="checkbox" ng-model="myVar">
</form>
<h1 ng-show="myVar">My
Header</h1>
Přepínače
Svázat přepínače s vaší aplikací pomocí ng-model
směrnice.
Přepínače se stejným ng-model
mohou mít různé hodnoty, ale bude použita pouze ta vybraná.
Příklad
Zobrazte nějaký text na základě hodnoty vybraného přepínače:
<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>
Hodnota myVar bude buď dogs
, tuts
, nebo
cars
.
Výběrové pole
Svažte výběrová pole k vaší aplikaci pomocí ng-model
direktivy.
Vlastnost definovaná v ng-model
atributu bude mít hodnotu vybrané možnosti ve výběrovém poli.
Příklad
Zobrazte nějaký text na základě hodnoty vybrané možnosti:
<form>
Select a topic:
<select ng-model="myVar">
<option value="">
<option value="dogs">Dogs
<option value="tuts">Tutorials
<option
value="cars">Cars
</select>
</form>
Hodnota myVar bude buď dogs
, tuts
, nebo
cars
.
Příklad formuláře AngularJS
form = {"firstName":"John","lastName":"Doe"}
master = {"firstName":"John","lastName":"Doe"}
Kód aplikace
<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>
Atribut novalidate je v HTML5 nový. Zakáže jakékoli ověření výchozího prohlížeče.
Příklad vysvětlen
Direktiva ng-app definuje aplikaci AngularJS.
Direktiva ng-controller definuje řadič aplikace.
Direktiva ng-model spojuje dva vstupní prvky s uživatelským objektem v modelu.
Ovladač formCtrl nastavuje počáteční hodnoty hlavnímu objektu a definuje metodu reset() .
Metoda reset() nastaví uživatelský objekt na stejný jako hlavní objekt.
Direktiva ng-click vyvolá metodu reset() pouze po kliknutí na tlačítko.
Atribut novalidate není pro tuto aplikaci potřeba, ale normálně ho použijete ve formulářích AngularJS k přepsání standardního ověřování HTML5.