Gemäß the docs (speziell die Tabelle, die Direktiven mit Komponenten vergleicht), erlauben Winkelkomponenten die Verwendung anderer Direktiven (oder sind es nur Komponenten?). Komponenten haben jedoch keine Verknüpfungsfunktion, die Zugriff auf den erforderlichen Controller geben könnte. Im Gegensatz zur Dokumentation scheint The source darauf hinzuweisen, dass die Verwendung von "require" beim Erstellen von Komponenten nicht möglich ist. Was wahr ist?Verwenden von 'require' in winkelförmiger Komponente
Antwort
Die angegebene Quelle ist veraltet. Ab 1.5.0 Komponenten-Controller can be required in anderen Komponenten (Gleiches gilt für Anweisungen).
Ein Beispiel aus der Anleitung shows the way how the components and directives should interact in 1.5 ohne die Hilfe von link
.
Wenn require
object and bindToController
zusammen verwendet werden, werden die erforderlichen Controller-Instanzen dem aktuellen Controller als Eigenschaften zugewiesen.
Da dies während der Direktivenverknüpfung geschieht, sind die erforderlichen Controller im Controller-Konstruktor nicht verfügbar, deshalb ist $onInit
magic method da. Wenn es existiert, it is executed right after adding required controllers bis this
.
Beide
app.directive('someDirective', function() {
return {
scope: {},
bindToController: {},
controllerAs: 'someDirective',
require: {
anotherDirective: '^anotherDirective'
},
controller: function ($scope) {
console.log("You don't see me", this.anotherDirective);
this.$onInit = function() {
console.log("Now you do", this.anotherDirective);
};
}
}
});
und
app.component('someComponent', {
controllerAs: 'someComponent',
require: {
anotherDirective: '^anotherDirective'
},
controller: function ($scope) {
console.log("You don't see me", this.anotherDirective);
this.$onInit = function() {
console.log("Now you do", this.anotherDirective);
};
}
});
Erklärung Stile sind auf einem Niveau unter der Haube und kann in 1,5 austauschbar verwendet werden, und component
ist eine kurze ein.
- 1. Winkelförmiger benutzerdefinierter Filter wird nicht angezeigt
- 2. Greasemonkey @require jQuery funktioniert nicht "Komponente nicht verfügbar"
- 3. angular 1.5 Komponente Vorlage Webpack require() verursacht Fehler
- 4. Verwenden von ReactJS BigCalendar-Komponente von NancyFx
- 5. Verwenden Sie `require()` mit `node --eval`
- 6. Verwenden von require() und importieren für private NPM-Module Fehler
- 7. Wie eine Komponente zu verwenden, aus einer Komponente in Ember
- 8. Wrapping PrimeUI-Komponente in React-Komponente
- 9. Verwenden Sie 'require' Paketcode, um Datenpakete in R
- 10. Require in Init.d-Skript
- 11. Listener in Oberseiten, welche Komponente zu verwenden?
- 12. Verwenden Sie import/require in TypeScript, um Schnittstellendeklarationen zu erhalten
- 13. include/require einmal in php
- 14. Testen von Vue.js Komponente
- 15. So verwenden roImageCanvas in Szenengraph Komponente
- 16. Übergeben von benutzerdefinierten Attributen in Aurelia-Komponente
- 17. Wie Verwenden von ActiveX-Komponente in ClassLibrary ohne Winforms
- 18. Verwenden von Angular 2 Komponente in Angular 1 App
- 19. Verwenden von ember-cli-sheetjs in einer Ember-Komponente
- 20. Verwenden Sie Bootstrap-Komponente in Winkelkomponente
- 21. Kann eine dumme Komponente Redux Container-Komponente verwenden/rendern?
- 22. Recover von Ausfall von require/load in Ruby
- 23. Require Pull-Anforderung in TFS
- 24. Verwenden von React-Komponente von js source maps
- 25. Nicht in der Lage, benutzerdefinierte Funktionen in Webpack mit require
- 26. Bootstrapped manifest nicht zu verwenden ‚Komponente‘ Richtlinie
- 27. Put Vaadin Komponente in Element von Javascript Komponente generiert
- 28. Unterschied zwischen HTML-Komponente und einer normalen Komponente in Aurelia?
- 29. 'require' gem Fehler in JRuby
- 30. Kann Gem-Bibliothek nicht verwenden, obwohl require-Anweisung funktioniert