Ich benutze die v1.5-Komponente, die im Wesentlichen (soweit ich verstehe) ein Wrapper für Best Practice-Anweisungen ist. http://toddmotto.com/exploring-the-angular-1-5-component-method/Zugriff auf Attribute in Angularjs 'v1.5-Komponente?
Ich habe folgendes:
<span>Correclty showing: {{ data.type }}</span>
<book class="details" type="data.type"></book>
Und es ist Komponentendefinition:
angular
.module('app')
.component('book', {
bindings: {
type: '='
},
template: function($element, $attrs) {
// Have tried A):
// console.log($attrs.type); // <- undefined
// And B):
$attrs.$observe('type', function(value) {
console.log(value); // <- undefined
});
// But.. C):
return "This works though {{ book.type }}"; // <- renders
}
});
Sowohl A)
und B)
Weitere Informationen über die Version 1.5 der Komponente finden sich hier Variationen zurück undefined
. C)
wird richtig gerendert.
Gibt es eine Möglichkeit, auf Attribute innerhalb der Template-Funktion zuzugreifen, bevor die Template-Zeichenkette zurückgegeben wird?
Ich sehe ng-strict-di, ng-Anmerkungen versehen und dann eine sehr interessante @ ngInject? Können Sie erklären, wie ein Attr injizierbar sein kann? Ich suche nach einer Antwort, die vorschlägt, wie man das templateUrl basierend auf anderen Abhängigkeiten erstellt. – iJames
Es ist in der Angular 1.5 docs, in der Komponentenarchitektur sind $ Element und $ Attrs injizierbar. Weitere Informationen finden Sie im Komponentenhandbuch, das in der Antwort verlinkt ist. – Jeff
@Jeff ist es notwendig, den $ Element-Dienst zu injizieren? Ich habe versucht, ohne es zu injizieren und es scheint trotzdem zu funktionieren. – user449689