Odpowiednim poleceniem, gdzie można znaleźć więcej informacji na ten temat, jest this one, który prowadzi również do problemu z prośbą o wprowadzenie $ locals.
Krótko mówiąc, podczas przekazywania parametru do dyrektywy za pomocą "&", aby dyrektywa mogła wykonać kod w razie potrzeby (na przykład podczas korzystania z ng-click="doSomething()"
), dyrektywa może przekazywać informacje do dzwoniącego używając lokalnych wartości.
Na przykład można użyć ng-click="doSomething($event)"
, gdzie $ event nie jest atrybutem zakresu, ale wartością przekazaną przez dyrektywę ng-click.
Zamiast dostępu do każdej "lokalnej" wartości przekazywanej indywidualnie przez dyrektywę, można uzyskać do nich dostęp jednocześnie za pomocą $locals
.
Więcej informacji na temat sposobu przekazania wartości lokalnych od dyrektywy jest dostępny w documentation on directives:
& lub & attr - zapewnia sposób wykonywania wyrażenie w kontekście zakresu nadrzędnego. Jeśli nie podano żadnej nazwy attr, przyjmuje się, że nazwa atrybutu jest taka sama, jak nazwa lokalna. Podana definicja widgetu scope: {localFn: '& myAttr'}, a następnie wyodrębniona właściwość scope localFn wskaże wrapper funkcji dla wyrażenia count = count + value. Często pożądane jest przekazywanie danych z izolowanego zasięgu poprzez wyrażenie do zakresu nadrzędnego, można to zrobić, przekazując mapę lokalnych nazw zmiennych i wartości do opakowania wyrażenia fn. Przykładowo, jeśli ekspresja jest increment(amount)
następnie można określić wartość ilości o wywołaniu localFn jako localFn ({wysokość: 22})
(kopalni nacisk)
W powyższym axample The cały obiekt {amount: 22}
przeszedł przez dyrektywę jest dostępna za pomocą $ mieszkańców, i można w ten sposób wykorzystać increment($locals.amount)
Więc co ten dziennik? – zakdances
Loguje, co zwraca kontroler. '{a: 1, b: 2, c: 3, cb: function (locals) {...}}' –