/ / Czy mogę uzyskać dostęp do skompilowanych danych węzłów w niestandardowej dyrektywie AngularJS? - angularjs, angularjs-policy

Czy mogę uzyskać dostęp do danych skompilowanego węzła w niestandardowej dyrektywie AngularJS? - angularjs, angularjs-directive

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 № 1

Jeś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ć.