Мне нужно было бы увидеть больше вашего кода, чтобы быть уверенным, но из того, что вы показываете, я не вижу, куда вы загружаете данные cookie в LstTimeZoneDetails
.Из того, что я понял, это то, что происходит:
Первая загрузка: LstTimeZoneDetails
, вероятно, пустой массив (потому что .push()
не жалуется) Проверьте, существует ли значение cookie, установите пустой массив (LstTimeZoneDetails
) selectedTimeZones
становится пустым массивом, или пустым объектом ({}
), если LstTimeZoneDetails
еще не является массивом ... Вы вероятно хотите, чтобы это был массив, но опять же я не знаю, как выглядит остальная часть вашего кода.
Нажмите кнопку: добавьте что-то в массив LstTimeZoneDetails
, установитеselectedTimeZones
до LstTimeZoneDetails
(почему вам нужны две разные вещи, указывающие на один и тот же объект в области видимости, мне не подходит, но хорошо ...) Замените cookie на selectedTimeZones
Обновить страницу: Cookie isn 't пусто, установите selectedTimeZones
в значение cookie.На этом этапе LstTimeZoneDetails
- это то же самое, что и в «Первой загрузке» выше.Предполагалось, что это пустой массив, поэтому это пустой массив.
Нажмите кнопку: добавьте что-то в массив LstTimeZoneDetails
, установите selectedTimeZones
в LstTimeZoneDetails
(зачем вам два разныхвещи, указывающие на один и тот же объект в области видимости, мне недоступны, но все в порядке ...) Замените cookie на selectedTimeZones
........
Вы видите проблемуеще?
Вы никогда не заполняете LstTimeZoneDetails
старыми значениями и заменяете переменную, которую вы сделали , заполняете старыми значениями новыми значениями!
Итак, еще раз я спрашиваю - почему существуют разные переменные, которые из того, что я могу сказать, просто отражают друг друга?
Чтобы исправить, либо просто используйте одну, либо (насколько я могу судить) заменить $scope.selectedTimeZones = $cookies.getObject('selectedTimeZones') || {};
с $scope.LstTimeZoneDetails = $cookies.getObject('selectedTimeZones') || [];
проблема, однако, в том, что теперь LstTimeZoneDetails
не будет установлен, так что в любом случае вам нужно немного переосмыслить свой подход.