vermag ich nicht aus dem Inneren einer benutzerdefinierten Vorlage einen Controller-Funktion aufrufen mit ui-typeahead:Zugriffssteuerungsbereich von Bootstrap-UI typeahead Vorlage
<input typeahead="val for val in autoComplete($viewValue)"
typeahead-template-url="searchAutocompleteTpl.html"
ng-model="query"/>
<script type="text/ng-template" id="searchAutocompleteTpl.html">
<span ng-repeat="eqp in match.model.equipment"/>
<a href="" ng-click="showItem(eqp.model)">
found in: {{eqp.model}}
</a>
</script>
Das Problem ist, dass der Anwendungsbereich der Controller nicht vorhanden sein scheint die Vorlage:
showItem(eqp.model)
nie aufgerufen. Ich habe auch versucht, mit:
$parent.showItem(eqp.model)
ohne Erfolg.
Wie kann ich dann eine Funktion/Wert auf dem Bereich der Steuerung aufrufen?
danke, aber weißt du warum? und wo können wir klar über die Struktur des Geltungsbereichs sehen? – Awakening
Es dauerte 4 $ Elternteil für mich, um zum ursprünglichen Umfang zu gelangen. – ddalex
Es hängt davon ab, wie und wo Sie es verwenden. typeahead führt eindeutig einen isolierten Bereich ein, was bedeutet, dass Sie nicht prototypisch von Ihren eigenen Elternbereichen erben können. Deshalb müssen Sie $ parent verwenden, das selbst in isolierten Bereichen mit eckigen Werten versehen ist. Wenn Sie typeahead in Ihrer eigenen Direktive verwenden, die auch einen isolierten Bereich definiert, müssen Sie die $ parent-Kette viermal nach oben gehen, um zu Ihrem Basisbereich zu gelangen. Natürlich möchten Sie an dieser Stelle vielleicht beginnen, Ihren Code zu überdenken. Der Punkt eines isolierten Bereichs ist, dass er wiederverwendet werden kann, da er nicht von einem übergeordneten Element abhängt. –