Я хочу переменную, которая может использоваться во всех контроллерах, но не хочет создавать для нее сервис. Возможно ли это в угловых js?Как вы объявляете глобальную переменную, используя Angular Js?
ответ
Вы можете использовать constants or values.
Константы
var app = angular.module('myApp', []);
app.constant('appName', 'Application Name');
app.controller('TestCtrl', ['appName', function TestCtrl(appName) {
console.log(appName);
}]);
Значения
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/
Привет, спасибо за ответ. – Neel
Вы можете установить эту переменную на $ rootScope. и вводить $ rootScope в контроллеры, которые будут использовать глобальный.
Использование value()
для определения объекта и хранить свои 'глобальные переменные' как свойства этот объект. Затем добавьте объект в зависимость от любого контроллера, которому необходимо получить доступ к его свойствам. У этого есть положительный побочный эффект инкапсуляции всех ваших переменных в один объект, который является аккуратным и менее вероятным, чтобы столкнуться с пространством имен.
Вот картина:
app.value('myVars', {
usersOnline:0
});
app.controller('TestCtrl', ['myVars', function TestCtrl(myVars) {
console.log(myVars.usersOnline);
myVars.usersOnline = 15;
console.log(myVars.usersOnline);
}]);
FYI ответ Aseem не будет работать, потому что его пример использует value()
с примитивным типом. Чтобы уточнить, что не работает:
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);
}]);
Матфей в точности прав. Если не удалось определить значение как объект, изменение значения внутри конкретного контроллера не будет затягиваться снаружи. –
это не работает. – ritesh
- 1. Как вы объявляете глобальную переменную в Xcode?
- 2. AS3 Как вы объявляете глобальную переменную?
- 3. JS - установить глобальную переменную
- 4. codeigniter, используя глобальную переменную
- 5. Как вы объявляете переменную C# в переменную типа HTML?
- 6. Как вы объявляете распределитель?
- 7. Используя глобальную переменную в golang
- 8. Как вы изменяете глобальную переменную в elisp?
- 9. как вы перебираете глобальную переменную в Sweave
- 10. Как объявить глобальную переменную в файле .js
- 11. Как создать глобальную переменную в Kraken JS
- 12. Как вы объявляете пользовательскую переменную внутри цели make?
- 13. Как вы объявляете класс встроенным?
- 14. Angular 2 - angular-cli: установить глобальную переменную при построении
- 15. Как вы объявляете общий std_logic_vector в VHDL?
- 16. Как создать глобальную переменную?
- 17. Я объявил глобальную переменную в script1, Js
- 18. возвращает глобальную переменную в d3.js
- 19. Как создать глобальную переменную в javascript (используя webpack)
- 20. Используя глобальную переменную рубиновый внутри YAML
- 21. используя глобальную переменную за пределами ее области
- 22. Как вы объявляете массив констант указателей функций?
- 23. , используя глобальную переменную для хранения числа (JavaScript)
- 24. Как отключить глобальную переменную?
- 25. Как инициализировать глобальную переменную
- 26. Загрузить файл, используя Angular JS
- 27. Переназначить сохраненную глобальную переменную как не глобальную
- 28. Как можно увеличить глобальную переменную?
- 29. Как использовать переменную как глобальную?
- 30. Контролировать глобальную переменную от AngularJS
Возможно - посмотрите на @Alan answer - но это не рекомендуется. Что будет содержать var? – Okazari
Вы должны использовать ответ Асеема, используя $ rootScope для переменных, считается большим недостатком дизайна в угловом мире. Именно поэтому существуют службы/фабрики. – mikeswright49