На самом деле, я хочу что-то вроде этого location.path(location.url());
но угловой по умолчанию не позволяет этого. Есть ли способ переопределить его?
Мне нужно это, чтобы возобновить просмотр и привязку контроллера?
Зачем?
Итак, у меня в модельных утверждениях вот так:
$scope.instance =
{
City: gettextCatalog.getString(cityName),
Country: gettextCatalog.getString(countryName),
}
Итак, если я изменю язык, значение $scope.instance
не будет пересчитано. Я думаю, что переупорядочение перенаправления - это более простой способ, чем вставка каждого "экземпляра" в функцию, которая будет вызвана после изменения языка.
Если вы используете ngRoute
$route.reload()
$ route используется для глубокого связывания URL-адресов с контроллерами и представлениями (частичные части HTML). Он смотрит $ location.url() и пытается сопоставить путь к существующему определению маршрута.
reload(); Заставляет $ route service перезагружать текущий маршрут, даже если $ location не изменилось. В результате ngView создает новую область действия и восстанавливает контроллер.
Если вы используете ui.router
$state.go($state.$current, null, { reload: true });
$route.reload();
Из угловых документов: https://docs.angularjs.org/api/ngRoute/service/ $ route
Заставляет $ route service перезагружать текущий маршрут, даже если $ location не изменилось.
В результате ngView создает новую область действия и восстанавливает контроллер.
Вы пытались использовать $ scope. $ Apply()?
$apply()
, я должен сделать это вручную для каждого элемента управления на странице. ИМХО, перенаправление проще.