Боковое меню не обновляется до повторного открытия приложения

#javascript #angularjs #ionic-framework

#javascript #angularjs #ionic-framework

Вопрос:

В моем приложении я показываю имя пользователя в заголовке бокового меню с помощью ng-bind. Это имя пользователя происходит из локального хранилища. Но когда я редактирую профиль пользователя, а также имя пользователя и переопределяю его на локальное хранилище. После этого новое имя пользователя не отображается в заголовке sidemenu. Но когда я обновляю страницу из браузера или снова открываю приложение, оно эффективно отображает новое. Итак, что я должен сделать для обновления содержимого бокового меню (имя пользователя)?? Это займет много моего времени …. ответ будет оценен… Спасибо 🙂

привет, спасибо за ответ. Я делюсь своим кодом ниже….

Страница входа в систему

Я устанавливаю first_name и last name в локальное хранилище, которое поступает из ответа службы. и URL-адрес страницы входа ==> http://localhost:8100/#/login

localStorage.setItem(«firstname»,JSON.stringify($scope.dataa.first_name)); localStorage.setItem(«lastname», JSON.stringify($scope.dataa.last_name));

и я получаю его на свой контроллер ionic menu …. var firstname={}; var lastname={}; $scope.firstname=JSON.parse(localStorage.GetItem(‘firstname’)); $scope.lastname=JSON.parse(localStorage.GetItem(‘lastname’));

и URL-адрес этого ==>http://localhost:8100/#/menu/dashboard1 корневая страница «меню».

Когда я редактирую страницу, я снова устанавливаю это содержимое в локальное хранилище.Но оно не отображается в заголовке меню.Но когда я обновляю страницу, она отображается эффективно. Я думаю, что это проблема с корневым URL ==> /menu/ никогда не обновляется в этом приложении.

Я редактирую это содержимое с помощью этого url ==>/localhost:8100/ #/menu/editprofile, поэтому оно не обновляет корневую страницу url. Но когда я редактирую профиль с помощью этого url ==>/localhost:8100 / #/ editprofile, содержимое обновляется автоматически …. а не для указанного выше URL. Надеюсь, вы понимаете. ответ будет оценен. Спасибо

Комментарии:

1. Пожалуйста, предоставьте часть вашего кода

Ответ №1:

Не видя никакого вашего кода, я предполагаю попробовать применить $scope внутри тайм-аута:

 $timeout(function () {
    $scope.$apply();
}
  

Выполните описанные выше действия после изменения связанных данных и посмотрите, не приведет ли это к обновлению пользовательского интерфейса.

(Кстати, если вы пытаетесь привязать данные непосредственно к localStorage, я сомневаюсь, что это сработает — вам, вероятно, нужно либо хранить данные в памяти, либо привязываться к функции, которая извлекает их из localStorage, в зависимости от ваших потребностей.)