Für funktionalen Stil Programmierung die Fabrik Stil Dienste die folgende Syntax verwendet bekommt den Job getan:
angular.module('myApp')
.component('myComponent', {
templateUrl: 'myTemplate.html',
controller: ['myFactory', function(myFactory){
var thisComponent = this;
thisComponent.myTemplatemsg = myFactory.myFunc();
}]
})
.factory('myFactory', [ function(){
return {
myFunc: function(){
return "This message is from the factory";
}
};
}]);
Ein Wort of caution: Die gleiche Komponente Service/Factory, die Sie für Ihre Komponente eingerichtet haben, ist auch injizierbar (und damit zugänglich) an anderer Stelle in Ihrer App, einschließlich des übergeordneten Bereichs und anderer Komponentenbereiche. Das ist mächtig, kann aber leicht missbraucht werden. Daher wird empfohlen, dass Komponenten nur Daten in ihrem eigenen Umfang ändern, damit es keine Verwirrung darüber gibt, wer was ändert. Weitere Informationen hierzu finden Sie unter https://docs.angularjs.org/guide/component#component-based-application-architecture.
Aber selbst die Diskussion in der oben genannten Link Adressen nur die Vorsichtshinweis Verwendung der Zwei-Wege-Bindung Eigenschaft Wert von '='
bei der Verwendung der Bindings-Objekt. Daher sollte die gleiche Argumentation für Komponentendienste und Fabriken gelten. Wenn Sie beabsichtigen, den gleichen Service oder die gleiche Factory in anderen Komponentenbereichen und/oder dem übergeordneten Bereich zu verwenden, empfehle ich, Ihren Service/Ihre Factory dort einzurichten, wo sich Ihr übergeordneter Bereich befindet oder wo sich Ihre beabsichtigte Versammlung von Services/Fabriken befindet. Vor allem, wenn Sie zahlreiche Komponenten mit demselben Service/derselben Fabrik haben. Sie wollen nicht, dass es sich in irgendeinem beliebigen Komponentenmodul befindet, das schwer zu finden wäre.
bei Hinzufügen ES6 müssen params lokale Variable 'Klasse FranchisesController { Konstruktor ($ state) zuweisen { diese $ state = $ Zustand. } addFranchise() { dies. $ State.go ('franquicias.agregar'); } } ' – elporfirio
Woher hast du das herausgefunden? Ich konnte dies in den Dokumenten unter https://docs.angularjs.org/guide/component nicht finden. Prost –
@NickWhiu Sie können es unter Dependency Injection Abschnitt finden - https://docs.angularjs.org/guide/di – Gondy