如何路由到同一位置以重新启动视图和控制器绑定 (angularjs)



实际上,我想要这样的东西location.path(location.url());但默认情况下角度不允许这样做。有没有办法覆盖它?

我需要它来更新视图和控制器绑定?

为什么?

所以,我的模型语句是这样的:

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

因此,如果我更改语言,将不会重新计算$scope.instance。我认为,重新路由时重新绑定比在函数中插入每个"实例"更简单,这些"实例"将在语言更改后调用。

如果您使用的是ngRoute

$route.reload()

$route用于将 URL 深层链接到控制器和视图 (HTML 部分)。它监视 $location.url() 并尝试将路径映射到 现有路由定义。

重新加载(); 导致$route服务重新加载当前路由,即使$location 没有改变。 因此,ngView 会创建新的作用域并重新实例化 控制器。

如果您使用的是 ui.router

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

从角度文档: https://docs.angularjs.org/api/ngRoute/service/$route

导致$route服务重新加载当前路由,即使$location未更改。
因此,ngView 会创建新的作用域并重新实例化控制器。

你试过使用 $scope.$apply() 吗?

最新更新