实际上,我想要这样的东西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() 吗?