Kątowa 2: Czy korzystanie z nawiasów / nawiasy kwadratowe obowiązkowe?

głosy
18

W kątowym 2 podglądu opublikowanych dotąd składnia znaczników jest modyfikowany ng-przedrostków nawiasy kwadratowe i nawiasy kwadratowe.

Podczas gdy przed należałoby:

<input ng-model=userName />
<button ng-click=btnClick()>Run</button>

Nowa składnia jest następująca:

<input [value]=userName />
<button (click)=btnClick()>Run</button>

Czy ktoś wie, czy ta składnia jest / będzie obowiązkowe, a bez alternatywy?

Obecnie mamy aplikację, w której HTML jest generowany przez XSLT, a [i (nie są ważne atrybuty - dzięki czemu jest w stanie wygenerować kątowa 2 składni JS.

Utwórz 13/01/2015 o 08:12
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
11

Nie obowiązkowe: -

http://eisenbergeffect.bluespire.com/all-about-angular-2-0/

Proszę kasy sekcję dyrektyw (o blisko w połowie strony): - „Dyrektywa Dekorator” nadal istnieje, co oznacza, w odniesieniu do Twojego pytania.

Nie będzie cofać sposób na pewno.

Czy kasy oficjalną demostration jak również, model ng / kliknięcie są wykorzystywane w tym również: -

https://www.youtube.com/watch?v=gNmWybAyBHI

Odpowiedział 13/01/2015 o 08:20
źródło użytkownik

głosy
45

W rzeczywistości, []a () ważne znaków HTML w atrybutach. Jeśli generować kod HTML na stronie serwera lub innej pre-procesor, który nie radzi sobie z tych znaków, zawsze można użyć równoważne składni kanoniczną.

  • []jest skrótem bind-*, stąd[propertyName] == bind-property-name
  • ()jest skrótem on-*, stąd(eventName) == on-event-name

Składnia ta jest używana głównie z dwóch powodów ( i faktycznie obowiązkowe ):

  • Uciekając - atrybutów muszą być uciekł. Jeśli masz tag obrazu z dynamicznym srctak: <img src="`imageSource`">byłoby to doprowadzić do 404błędu, ponieważ przeglądarka natychmiast próbuje zwrócić się do danego adresu URL. URL w danej chwili jest `imageSource`, który jest na pewno bez ważnego adresu URL. W związku z tym mamy ngSrcatrybut kątowej 1. Możemy używać go jak <img ng-src="`imageSource`">. Co robi jest, że czeka, aż interpolacja jest oceniany , a następnie dodajesrc atrybut obraz. Gwarantuje to, że nic złego wniosek został złożony ze względu na asynchroniczną oceny interpolacji. Istnieje kilka więcej dyrektyw, które pomagają na to, jakng-href, Teraz, jeśli chodzi o składowe internetowej nazwy atrybutów nie są już deterministyczny. Elementy sieci Web mogą definiować własne atrybuty, których ramy nie wiedzieć. Więc mamy dwie opcje: albo możemy stworzyć dyrektywę dla każdego atrybutu, który musi uciec, albo wymyślić bardziej ogólny składni że kątowa rozumie i pozwala przechwycić ramową odpowiednio (oh sieci doskonałości!). To dlatego [propertyName]został wprowadzony. Ponownie, jest to tylko skrót. Użyj składni kanoniczną, że jeśli cię nie swoich.
  • Nieruchomość Binding - Teraz można się zastanawiać, dlaczego [propertyName]nie [attributeName]. Okazuje się, że natkniemy się na kolejny problem w kontaktach z niestandardowych elementów, które nie są świadome kątowej za dyrektywy cyklu. W kątowe, możemy zdecydować, w jaki sposób wartość jest związana z zakresem elementu. Więc w tym kodzie: <my-directive foo="bar">, barmógłby być tylko ciąg znaków lub obiekt, który jest dwukierunkowe dane związane. Wiemy tylko, że patrząc na wdrożenie dyrektywy. Jednak Elementy sieci Web oraz niestandardowych elementów po prostu nie wiedzą o cyklu kątowej za. Co oznacza, wartość atrybutu zawsze ciągiem znaków, bo to właśnie atrybutem jest w formacie HTML. W celu upewnienia się, że wciąż możemy przekazać inne wartości niż tylko strun do dowolnego elementu, kątowe 2 wiąże się z właściwościami elementu zamiast atrybutów, Ze względu na właściwość obiektu elementu DOM może być cokolwiek, a nie tylko ciąg. Tak ze []składni, możemy również powiedzieć, że kątowa chcemy wiązać się własności elementu, a nie jest to atrybut. Oznacza to również, że teraz konsument dyrektywy / elementów / webcomponent jest odpowiedzialny za podejmowanie decyzji, w jaki sposób wartość jest przekazywana do niego.

Ja napisałem artykuł o tym, które obejmuje ten temat, również tam rozmowa z ngeurope .

Mam nadzieję, że czyści rzeczy!

Odpowiedział 16/06/2015 o 08:36
źródło użytkownik

głosy
0

Pozwól mi spróbować przykład, który będzie oczyścić swoje myśli.

Rozważmy kod:

get test() {
    return true;
}

Jeśli można użyć następującego kodu spowoduje „[widoczny] ” otrzymuje atrybut „test” jako wartość.

<input tybe="button" [visible]="test" /> 

Ale jeśli używasz:

<input type="button" (visible)="test"

Otrzymuje wartość „test” metody.

Innymi słowy [] i wiąże się z obiektem () wiąże zdarzenie. Proszę mnie poprawić, jeśli ktoś robię źle.

Więcej szczegółów tutaj i tutaj

Mam nadzieję, że to pomoże.

Odpowiedział 12/11/2018 o 19:55
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more