Chcę zmiennej, które mogą być używane we wszystkich kontrolerów, ale nie chcesz utworzyć dla niego usługi. Jest to możliwe w kanciastych js?jak zadeklarować zmienną globalną za pomocą Angular Js?
Odpowiedz
Możesz skorzystać z constants or values.
Stałe
var app = angular.module('myApp', []);
app.constant('appName', 'Application Name');
app.controller('TestCtrl', ['appName', function TestCtrl(appName) {
console.log(appName);
}]);
wartości
var app = angular.module('myApp', []);
app.value('usersOnline', 0);
app.controller('TestCtrl', ['usersOnline', function TestCtrl(usersOnline) {
console.log(usersOnline);
usersOnline = 15;
console.log(usersOnline);
}]);
http://ilikekillnerds.com/2014/11/constants-values-global-variables-in-angularjs-the-right-way/
Cześć dzięki za odpowiedź. – Neel
Możesz ustawić tę zmienną w $ rootScope. i wstrzyknąć $ rootScope do kontrolerów, które będą używały globalnego.
Zastosowanie value()
zdefiniować obiekt i przechowywać 'zmienne globalne' jako właściwości ten obiekt. Następnie dodaj obiekt jako zależność do dowolnego kontrolera, który musi uzyskać dostęp do jego właściwości. Ma to pozytywny efekt uboczny enkapsulacji wszystkich zmiennych w jeden obiekt, który jest uporządkowany i mniej podatny na kolizję przestrzeni nazw.
Oto wzór:
app.value('myVars', {
usersOnline:0
});
app.controller('TestCtrl', ['myVars', function TestCtrl(myVars) {
console.log(myVars.usersOnline);
myVars.usersOnline = 15;
console.log(myVars.usersOnline);
}]);
FYI odpowiedź Aseem nie będzie działać, bo jego przykład używa value()
z prymitywnego typu. Aby wyjaśnić, co nie działa:
app.value('usersOnline', 0);
app.controller('TestCtrl', ['usersOnline', function TestCtrl(usersOnline) {
console.log(usersOnline);
usersOnline = 15; // <-- THIS WILL NOT PERSIST outside the controller.
console.log(usersOnline);
}]);
Matthew ma dokładnie rację. Jeśli nie uda się zdefiniować wartości jako obiektu, zmiana wartości wewnątrz określonego kontrolera nie zostanie przedłużona na zewnątrz. –
to nie działa. – ritesh
- 1. Jak zadeklarować zmienną globalną w VBA?
- 2. Jak zadeklarować zmienną globalną z klasy?
- 3. Jak mogę zadeklarować zmienną globalną w LLVM?
- 4. Jak zadeklarować zmienną globalną w php?
- 5. jak zadeklarować globalną funkcję lub metodę za pomocą C#?
- 6. Jak mogę zadeklarować zmienną globalną w Matlab dla kilku funkcji?
- 7. Jak utworzyć zmienną globalną za pomocą Play Framework 2.0
- 8. jest zmienną globalną przykład
- 9. Czy mogę zadeklarować zmienną globalną w Xquery na serwerze Marklogic?
- 10. Jak zapisać wartość globalną (niekoniecznie zmienną globalną) w jQuery?
- 11. Jak zadeklarować zmienną w zakresie danej funkcji za pomocą GDB?
- 12. Osadzanie strony HTML za pomocą Angular js
- 13. Obsługa zdarzeń Select2 za pomocą Angular js
- 14. Dlaczego zmieniono globalną zmienną "kątową" z angularjs.TypeScript.DefinitelyTyped?
- 15. Jak powiązać dane za pomocą kontrolera TypeScript & Angular Js
- 16. PHP - Jak przekazać zmienną globalną do funkcji
- 17. zadeklaruj globalną zmienną przestrzeni nazw z TypeScript
- 18. Script usiłował utworzyć zmienną globalną
- 19. Zastosuj zmienną globalną do Vuejs
- 20. Jak utworzyć zmienną globalną w prologu
- 21. C++: jak stworzyć wątek local/zmienną globalną
- 22. Jak programowo ustawić zmienną globalną (moduł)?
- 23. Dojo 1.8 - utwórz zmienną globalną wymaganą
- 24. Używanie metod pomocniczych podczas szablonowania za pomocą Angular JS
- 25. Sprawdzanie poprawności logowania za pomocą Angular Js i JSP
- 26. Uzyskaj adres z lokalizacji użytkownika za pomocą Cordova/Angular JS
- 27. Zadeklaruj zmienną globalną w XSLT, ponownie przypisać wartość lokalnie
- 28. Jak zadeklarować zmienną "chronioną" w swift
- 29. jak zadeklarować zmienną NSString z podwójnym wskaźnikiem
- 30. Jak zadeklarować zmienną niestandardową wewnątrz celu make?
Jest to możliwe - patrz odpowiedź @Alan - ale nie jest to zalecane. Co zawiera plik var? – Okazari
Powinieneś użyć odpowiedzi Aseem, wykorzystanie $ rootScope dla zmiennych jest uważane za dużą wadę konstrukcyjną w kątowym świecie. Dlatego istnieją usługi/fabryki. – mikeswright49