如果您有一个控制器来操作Angular.js中的$ scope变量,是否有惯用的方法:
对于复杂的控制器,不必将每个变量都重置为其初始值将非常方便,特别是如果您真正想要的是对控制器和范围进行简单的重新初始化。通过再次导航到相同的URL $location.path()并没有帮助。
$location.path()
编辑:假设我不能使用任何$window.location黑客工具,因为这会违反Chrome打包应用中的CSP。
$window.location
询问之后,我终于找到了一种使用解决此问题的方法$route.reload()。
$route.reload()
myapp.Controller('SampleController', function($location, $route) { $scope.navTo = function(url) { if ($location.path() === url) { $route.reload(); } else { $location.path(url); } } });
我仍然在想,必须有一些更优雅的解决方案,但这绝对对我有用。