Как направить в то же место, чтобы перезапустить представление и привязку контроллера (angularjs)?

0

На самом деле, я хочу что-то вроде этого location.path(location.url()); но угловой по умолчанию не позволяет этого. Есть ли способ переопределить его?

Мне нужно это, чтобы возобновить просмотр и привязку контроллера?

Зачем?

Итак, у меня в модельных утверждениях вот так:

$scope.instance = 
{
    City: gettextCatalog.getString(cityName),
    Country: gettextCatalog.getString(countryName),
}

Итак, если я изменю язык, значение $scope.instance не будет пересчитано. Я думаю, что переупорядочение перенаправления - это более простой способ, чем вставка каждого "экземпляра" в функцию, которая будет вызвана после изменения языка.

  • 0
    Вы хотите перезагрузить текущий маршрут снова?
  • 0
    @ User2, да, это так.
Показать ещё 1 комментарий
Теги:

3 ответа

1
Лучший ответ

Если вы используете ngRoute

$route.reload()

$ route используется для глубокого связывания URL-адресов с контроллерами и представлениями (частичные части HTML). Он смотрит $ location.url() и пытается сопоставить путь к существующему определению маршрута.

reload(); Заставляет $ route service перезагружать текущий маршрут, даже если $ location не изменилось. В результате ngView создает новую область действия и восстанавливает контроллер.

Если вы используете ui.router

$state.go($state.$current, null, { reload: true });
1
$route.reload();

Из угловых документов: https://docs.angularjs.org/api/ngRoute/service/ $ route

Заставляет $ route service перезагружать текущий маршрут, даже если $ location не изменилось.
В результате ngView создает новую область действия и восстанавливает контроллер.

0

Вы пытались использовать $ scope. $ Apply()?

  • 0
    Да, я пытался. Во-первых, это вызывает ошибку «rootScope.inprog». Во-вторых, это не совсем удобное решение, потому что у меня есть несколько элементов управления на странице, которые включают в себя как представление, так и контроллер, и мне нужно обновить все из них одновременно. Это означает, что если выбрать способ $apply() , я должен сделать это вручную для каждого элемента управления на странице. ИМХО, перенаправление проще.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню