Я новичок в угловых js.Пожалуйста, предложите, какой из них лучше. У меня есть страница, на которой я могу выбрать флажок «Нет» и перейти на вторую страницу. Я хочу показать отмеченные значения, когда я нажимаю кнопку «Назад» в браузере. Какой из них лучше использовать $ rootScope или stateparam или localstorage. Также рассмотрите производительность.Удерживайте данные между страницами в угловых js
ответ
Переход через ваши варианты один за другим:
$rootScope
: Вы должны стараться избегать использования этой опции, как он связан с глобальным государством. Используйте эту опцию только в том случае, если вы хотите, чтобы данные, которые вы установили, были глобально доступны во всем приложении и не хотите повторно использовать одни и те же имена переменных в другом месте.$stateParams
: Обычно они входят в URI состояния как a dynamic part всего URL-адреса. Это имеет ограниченное использование и не может быть хорошей идеей для вашего случая использования, когда вам нужно хранить данные из нескольких флажков.localStorage
: Это медленнее, чем использование переменной JavaScript, и, следовательно, not a good idea.
Услуги:
Вот лучшее решение для Вас, полностью в рамках парадигмы AngularJS: AngularJS services
Отрывок из ссылки в пункте 3:
данных также следует хранить в службах, за исключением случаев, когда он связан с номером
$scope
. Услуги - это одиночные игры, которые сохраняются на протяжении всего времени работы приложения , в то время как контроллеры являются переходными между состояниями приложений . Если данные хранятся в контроллере, тогда необходимо получить откуда-то, когда он будет восстановлен. Даже если данные хранятся вlocalStorage
, это на порядок медленнее для получения, чем с переменной Javascript.
Вы можете использовать эту услугу для установки и получения ваших данных внутри вашего контроллера в любом месте приложения в соответствии.
Вот показательный пример:
app.factory('formDetails', formDetails);
function formDetails() {
var formData = {};
return {
getProperty: function() {
return formData;
},
setProperty: function(values) {
formData = values;
}
};
};
Используйте его в своем контроллере:
app.controller('MyController', [ '$scope', 'formDetails' , function($scope, formDetails) {
$scope.checkboxData = {};
// on load call service 'get' function
$scope.checkboxData = formDetails.getProperty();
// on some event/watch function call service 'set' function
formDetails.setProperty($scope.checkboxData);
}]);
- 1. Данные бутстрапа в угловых js
- 2. Данные, проходящие между страницами angularjs
- 3. Как передавать данные между страницами
- 4. Данные формы, потерянные между страницами
- 5. Разница между двумя массивами в угловых JS
- 6. не обновляющиеся данные в угловых js
- 7. $ location.path не связывает данные в угловых js
- 8. Сохранять данные между страницами в Angular2
- 9. Сохранить данные между страницами в asp.Net
- 10. Контроллеры доступа между страницами в угловыхJS
- 11. Как сохранить функцию js между разными страницами?
- 12. обмен данными между контроллерами угловых JS
- 13. безопасно отправлять данные между двумя страницами jsp
- 14. не может хранить данные сессии между страницами
- 15. Как передавать данные между страницами Wordpress
- 16. данные между страницами: $ _SESSION vs. $ _GET?
- 17. Сессия Codeigniter, потерявшая данные между страницами
- 18. Данные сеанса, потерянные между страницами PHP?
- 19. Как передать входные данные = «файлы» между страницами
- 20. Данные сеанса ASP.Net, потерянные между страницами
- 21. Невозможно передать данные между несколькими страницами jsp
- 22. ReactJS Как передавать данные между страницами?
- 23. Как передать данные longlistselector между страницами xaml
- 24. Как передавать данные между двумя php-страницами?
- 25. Сортировка в угловых JS
- 26. javascript fade между страницами
- 27. Перемещение между страницами HTML
- 28. Как общаться между страницами
- 29. Характеристики угловых данных JS
- 30. Фильтрующие месяцев в угловых JS
Пожалуйста, поиск, прежде чем спросить .. Есть много вопросов, ответил так : http://stackoverflow.com/questions/35410484/angular-use-root-scope-vs-services-to-share-data – developer033
Я думаю, что вопрос OP несколько отличается; localStorage vs $ rootScope - это очень разные вещи. Но, tldr, вы должны использовать область действия, если не хотите, чтобы полустабильность localStorage (состояние сохранялось на новых вкладках, на следующий день и т. Д.). Итак, ответы на эту ссылку разработчика033 - хорошие ответы. В любом случае Perf будет в порядке. –