ich diese Frage bin frage, weil ich nicht ganz klar bin, wie von rootscope als Abhängigkeit Richtlinien bestanden
Ich habe eine Richtlinie zu denken, dass einige Informationen von $ angezeigt werden muss rootScope ...
Ich dachte, ich müsste das $ rootScope an eine Direktive übergeben, aber wenn ich eine Direktive schreibe, scheint es zu funktionieren.
.directive("myBar", function() {
return {
restrict: "E",
transclude: true,
replace: true,
template: '<div>' +
'<span ng-transclude></span>' +
'{{rsLabels.welcome}} {{rsUser.firstName}}!' +
'</div>'
}
})
Wann muss ich dies tun müssen?
.directive("myBar", function ($rootScope) {
return {
restrict: "E",
transclude: true,
replace: true,
template: '<div>' +
'<span ng-transclude></span>' +
'{{rsLabels.welcome}} {{rsUser.firstName}}!' +
'</div>'
}
})
Kann ich und wie verwende ich rootScope, wenn ich es in der Link-Funktion der Richtlinie müssen - oder soll ich tun es in der Steuerung der Richtlinie?
.directive("myBar", function ($rootScope) {
return {
restrict: "E",
transclude: true,
replace: true,
link: function (scope, element, attrs, rootScope) {
rootScope.rsUser = { firstName: 'Joe' };
rootScope.rsUser = { welcome: 'Welcome' };
},
template: '<div>' +
'<span ng-transclude></span>' +
'{{rsLabels.welcome}} {{rsUser.firstName}}!' +
'</div>'
}
})
Meine rootScope Daten in Lauffunktion
.run(function ($rootScope) {
$rootScope.rsLabels = {
welcome: 'Welcome'
};
$rootScope.rsUser = {
firstName: 'Joe'
};
});
Danke definiert ist!
ah! Ich verstehe. Wie Kurt darauf hingewiesen hat, ist dies nicht der beste Weg, die Eigenschaften der App in eckig zu setzen, aber ich musste das rootScope verstehen und dies erklärt es besser. Vielen Dank. Wissen Sie nicht, wie auf den $ root-Bereich in der Link-Funktion der Direktive zugegriffen werden soll? – GRowing
Sie müssen sich $ rootScope als den globalen Namespace vorstellen und vermeiden, ihn zu überladen. Sie können es in Ihre Direktive injizieren, aber der Hauptpunkt von Direktiven ist eine Komponente ohne zu viele externe Abhängigkeiten. Wenn Sie etwas von $ rootScope benötigen, können Sie es in einen Service umgestalten. –
Es macht Sinn. Ich nehme an, dass ich darauf zurückgriff, irgendein kin dof zu verwenden, das äquivalent zu globals ist, weil ich x jederzeit verfügbar haben muss und nicht weiß, wie ich es sonst angehen könnte. Ich benutze localStorage für einige Sachen, aber jetzt schaue ich auf cacheFactory und die erweiterte Version davon, und wie sie localstorage verwenden, sehe ich das Licht. Vielen Dank! – GRowing