Angularjs pozwala przedłużyć HTML z nowymi atrybutami zwanych dyrektyw.
Angularjs posiada zestaw wbudowanych dyrektyw, które oferuje funkcjonalność aplikacji.
Angularjs pozwala również definiować własne wskazówki.
angularjs dyrektywy
Angularjs dyrektyw są rozszerzone atrybuty HTML z prefiksem ng- .
ng-app dyrektywy inicjuje angularjs aplikację.
ng-init dyrektywy inicjuje dane aplikacji.
ng-model Dyrektywa wiąże wartość kontroli HTML (input, select, textarea) do danych aplikacji.
Przeczytaj o wszystkich angularjs dyrektyw w naszych angularjs dyrektywy referencyjnych .
Przykład
<div ng-app="" ng-init="firstName='John'">
<p>Name: <input type="text" ng-model="firstName"></p>
<p>You wrote: {{ firstName }}</p>
</div>
Spróbuj sam " ng-app Dyrektywa mówi także angularjs że element <div> jest "właścicielem" aplikacji angularjs.
Wiązanie danych
{{ firstName }} wyraz w powyższym przykładzie, stanowi daną angularjs wyrażenie wiążące.
Dane wiąże w angularjs wiąże angularjs wyrażeń z danymi angularjs.
{{ firstName }} jest związany z ng-model="firstName" .
W następnym przykładzie są dwa pola tekstowe ze sobą połączone z dwóch dyrektyw ng-model:
Przykład
<div ng-app="" ng-init="quantity=1;price=5">
Quantity: <input type="number" ng-model="quantity">
Costs: <input type="number" ng-model="price">
Total in dollar: {{ quantity * price }}
</div> Spróbuj sam " ![]() | Korzystanie ng-init nie jest bardzo powszechne. Dowiesz się, jak zainicjować danych w rozdziale o kontrolerach. |
|---|
Powtarzanie elementów HTML
ng-repeat dyrektywa powtarza elementu HTML:
Przykład
<div ng-app="" ng-init="names=['Jani','Hege','Kai']">
<ul>
<li ng-repeat="x in names">
{{ x }}
</li>
</ul>
</div>
Spróbuj sam " ng-repeat dyrektywa ta faktycznie klonuje elementy HTML raz dla każdego elementu w kolekcji.
ng-repeat dyrektywa stosowana na tablicy obiektów:
Przykład
<div ng-app="" ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]">
<ul>
<li ng-repeat="x in names">
{{ x.name + ', ' + x.country }}
</li>
</ul>
</div>
Spróbuj sam " ![]() | Angularjs jest idealny dla CRUD (tworzenie bazy Przeczytaj Aktualizuj Delete) aplikacji. Wystarczy wyobrazić sobie, jeśli obiekty te były rekordy z bazy danych. |
|---|
Dyrektywa ng-app
ng-app Dyrektywa definiuje element główny danego angularjs aplikacji.
ng-app dyrektywa będzie auto-ładujący (automatycznie zainicjować) aplikację, gdy strona jest ładowana.
Dyrektywa ng-startowych
ng-init Dyrektywa definiuje wartości początkowe dla angularjs aplikacji.
Normalnie, nie użyje NG-Init. Będziesz korzystać z kontrolera lub modułu zamiast.
Dowiesz się więcej na temat sterowników i modułów później.
Dyrektywa ng model
ng-model Dyrektywa wiąże wartość kontroli HTML (input, select, textarea) do danych aplikacji.
ng-model dyrektywa może także:
- Zapewnienie poprawności typu dla danych aplikacji (numer, e-mail jest wymagany).
- Informuje o stanie danych aplikacji (nieważne, brudne, dotknął, błąd).
- Zapewnienie klas CSS dla elementów HTML.
- Bind elementy HTML do formularzy HTML.
Czytaj więcej o ng-model dyrektywy w następnym rozdziale.
Tworzenie nowych dyrektyw
Ponadto dla wszystkich dyrektyw wbudowane angularjs, można tworzyć własne wskazówki.
Nowe wytyczne są tworzone za pomocą .directive funkcję.
Aby wywołać nową dyrektywę, aby element HTML z tej samej nazwie znacznika jako nowej dyrektywy.
Podczas nazywania dyrektywę, należy użyć nazwy liter wielbłąda, w3TestDirective , ale podczas wywoływania go, należy użyć - oddzielone nazwę, w3-test-directive :
Przykład
<body ng-app="myApp">
<w3-test-directive></w3-test-directive>
<script>
var app = angular.module("myApp", []);
app.directive("w3TestDirective",
function() {
return {
template : "<h1>Made by a directive!</h1>"
};
});
</script>
</body>
Spróbuj sam " Można powołać się na dyrektywę za pomocą:
- Nazwa elementu
- Atrybut
- Klasa
- Komentarz
Poniższe przykłady wszystkie ten sam wynik:
ograniczenia
Można ograniczyć dyrektyw się powoływać tylko niektóre z metod.
Przykład
Dodając restrict właściwość z wartością "A" , dyrektywa może być wywoływany tylko przez atrybuty:
var app = angular.module("myApp", []);
app.directive("w3TestDirective",
function() {
return {
restrict : "A",
template : "<h1>Made by a directive!</h1>"
};
});
Spróbuj sam " Prawne ograniczające są następujące wartości:
-
Eo nazwie Element - Atrybutu
-
Cdla klasy -
Mza komentarz
Domyślnie wartość jest EA , co oznacza, że obie nazwy nazw elementów i atrybutów może powoływać się na dyrektywę.
