Próbuję napisać dyrektywę, która sprawdzawartość zawartości w nim, aby zdecydować, czy pewne klasy powinny być zastosowane do elementu, i sformatować treść (prawdopodobnie przez wymuszenie zawartości w filtrze, jeśli dyrektywa zostanie zastosowana).
Chciałbym, aby składnia nazywała dyrektywę następująco
<div my-directive>{{foo}}</div>
i wypisać coś podobnego <div ng-class="a?b:c">{{foo | myFilter }}</div>
Wiem, że można to zrobić za pomocą <div my-directive="foo"></div>
ale chcę wiedzieć, czy mój preferowany sposób jest spójny w całej aplikacji.
Kiedy próbuję uzyskać dostęp element.text()
wewnątrz funkcji post-link, właśnie dostaję {{foo}}
zamiast renderowanej wartości. Czy istnieje sposób na uzyskanie dostępu do wartości zawartości węzła dyrektywy po powiązaniu go z HTML?
Odpowiedzi:
0 dla odpowiedzi № 1Jeśli chcesz uzyskać wartość, którą Twój {{foo}}
wyrażenie ocenia na wewnątrz twojej dyrektywy, możesz użyć kombinacji $eval
i $interpolate
usługa, tak jak:
var fooValue = scope.$eval($interpolate(elem.text()));
Tutaj jest JSFiddle wykazać.