如果你有一个控制器来操纵Angular.js中的$ scope变量,是否有一种惯用的方法:
对于复杂的控制器,不必将每个变量重置为其初始值非常方便,特别是如果您真正想要的是控制器和示波器的简单重新初始化。但是,通过$location.path()
再次导航到同一个网址无济于事。
修改:假设我无法使用任何$window.location
黑客攻击,因为这会违反Chrome打包应用中的CSP。
答案 0 :(得分:22)
在询问之后,我终于找到了一种方法来解决这个问题,使用$route.reload()
。
myapp.Controller('SampleController', function($location, $route) {
$scope.navTo = function(url) {
if ($location.path() === url) {
$route.reload();
} else {
$location.path(url);
}
}
});
我仍然在想,必须有一些更优雅的解决方案,但这绝对适用于我。