Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript: Angular 2, AngularJS
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
some_name
Вежливость-главное оружие
228 / 227 / 86
Регистрация: 19.02.2013
Сообщений: 1,441
1

Как заставить обновиться модели AngulaJS

28.05.2015, 18:05. Просмотров 1022. Ответов 4
Метки нет (Все метки)

Здравствуйте!

Имеется локализация для сайта. Делал с помощью фильтров:
Javascript
1
{{'USERS' | xlat}}
Как здесь.

Вот разметка, "отвечающая" за выбор языка:
HTML5
1
2
3
4
5
6
7
8
<div class="nav navbar-nav navbar-right navbar-text  navigation-group">
            <label class="col-sm-3 control-label">{{$scope.localization.language}}</label>
            <select id="select-language" data-ng-model="currentCulture" data-ng-change="setCurrentLanguage(currentCulture)">
                <option value='en' selected="selected">{{'ENGLISH' | xlat}}
                <option value='ru'>{{'RUSSIAN' | xlat}}
                <option value='fr'>{{'FRENCH' | xlat}}
            </select>
        </div>
Вот сам фильтр.
Вот метки для локализации.

При выборе языка, вызывается метод setCurrentLanguage:
Javascript
1
2
3
4
5
6
$scope.setCurrentLanguage = function(language) {
            xlatService.setCurrentLanguage(language);
            $localStorage.language = language;
            location.reload(); 
            $route.reload();
        };
Проблема, как заставить обновиться модели AngulaJS, т.е. чтобы фильтры отработали снова? Пробовал использовать $route.reload(), location.reload() по отдельности, вместе. По-разному вообщем. Не работает. Пробовал также не использовать local storage - тоже самое.

Если кто-то делал что-то подобное или знает варианты решения - прошу помочь.

Заранее спс!
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2015, 18:05
Ответы с готовыми решениями:

Как в img подставлять картинку из модели?
Есть такое определение модели: export class Customer { public...

Как серверу заставить броузер обновиться?
Мне нужно сделать так, чтоб сервер мог застравить броузер обновить страницу по...

Как заставить сайт написанный на 5.3 заставить работать на 5.6? Как принудительно включить register_globals?
Есть древний сайт. Работает на php 5.3. Как объяснил разработчик данного сайта...

Как обновиться с 7.7 до 8-ки?
Доброго времени . Стоит 1с 7.7 нужно перейти на 8ку .8.2 или 8.3 скажите как...

Как обновиться с 7.7 на 8.2?
Есть 5 компов в сети и их надо обновить, сохраняя базу

4
JokerNN
134 / 130 / 57
Регистрация: 29.12.2011
Сообщений: 359
28.05.2015, 18:09 2
$scope.$apply() не помогает?
0
some_name
Вежливость-главное оружие
228 / 227 / 86
Регистрация: 19.02.2013
Сообщений: 1,441
28.05.2015, 18:15  [ТС] 3
Цитата Сообщение от JokerNN Посмотреть сообщение
$scope.$apply() не помогает?
Javascript
1
2
3
4
5
$scope.setCurrentLanguage = function(language) {
            $localStorage.language = language;
            xlatService.setCurrentLanguage(language);
            $scope.$apply();
        };
Выдает такой выхлоп:
Кликните здесь для просмотра всего текста

[18:14:33.703] "Error: [$rootScope:inprog] $apply already in progress
http://errors.angularjs.org/1.3.9/$rootScope/inprog?p0=%24apply
minErr/<@http://localhost:8080/flowerty/resources/js/external/angular.js:63
beginPhase@http://localhost:8080/flo...nal/angular.js:14738
Scope.prototype.$apply@http://localhost:8080/flowerty/resources/js/external/angular.js:14482
$scope.setCurrentLanguage@http://localhost:8080/flowerty/resources/js/app/main/controller/MainController.js:61
$parseFunctionCall@http://localhost:8080/flowerty/resources/js/external/angular.js:12332
Scope.prototype.$eval@http://localhost:8080/flowerty/resources/js/external/angular.js:14384
ngChangeDirective<.link/<@http://localhost:8080/flowerty/resources/js/external/angular.js:20496
@http://localhost:8080/flowerty/resources/js/external/angular.js:23138
forEach@http://localhost:8080/flower...nal/angular.js:323
@http://localhost:8080/flowerty/resources/js/external/angular.js:23136
writeToModelIfNeeded@http://localhos...nal/angular.js:23129
@http://localhost:8080/flowerty/resources/js/external/angular.js:23123
validationDone@http://localhost:8080...nal/angular.js:23051
processAsyncValidators@http://localh...nal/angular.js:23034
@http://localhost:8080/flowerty/resources/js/external/angular.js:22979
@http://localhost:8080/flowerty/resources/js/external/angular.js:23116
@http://localhost:8080/flowerty/resources/js/external/angular.js:23084
@http://localhost:8080/flowerty/resources/js/external/angular.js:23214
@http://localhost:8080/flowerty/resources/js/external/angular.js:23188
setupAsSingle/</<@http://localhost:8080/flowerty/resources/js/external/angular.js:25498
Scope.prototype.$eval@http://localhost:8080/flowerty/resources/js/external/angular.js:14384
Scope.prototype.$apply@http://localhost:8080/flowerty/resources/js/external/angular.js:14483
setupAsSingle/<@http://localhost:8080/flowerty/resources/js/external/angular.js:25496
n.event.dispatch@http://localhost:80...y-2.1.3.min.js:3
n.event.add/r.handle@http://localhost:8080/flowerty/resources/js/external/jquery-2.1.3.min.js:3
"
0
JokerNN
134 / 130 / 57
Регистрация: 29.12.2011
Сообщений: 359
28.05.2015, 21:51 4
Лучший ответ Сообщение было отмечено some_name как решение

Решение

Javascript
1
$window.location.reload();
А вот так?
0
some_name
Вежливость-главное оружие
228 / 227 / 86
Регистрация: 19.02.2013
Сообщений: 1,441
28.05.2015, 21:53  [ТС] 5
Цитата Сообщение от JokerNN Посмотреть сообщение
$window.location.reload();
Работает! Спасибо.
0
28.05.2015, 21:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2015, 21:53

как обновиться до windows 8
у меня стоит пиратка wind7, хочу купить на розетке 8-ку эту, но это походу...

Как лучше обновиться?
Зарезервировал в своей Win7 обновление до Win10, потом автообновление отключил....

как заставить писиспикер заставить хоть чтото проскрипеть?
помогите дураку как заставить писиспикер заставить хоть чтото проскрипеть???...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru