javascript - 重新初始化 Angular.js Controller

标签 javascript angularjs angularjs-scope angularjs-controller

如果您有一个 Controller 来操作 Angular.js 中的 $scope 变量,是否有一种惯用的方法:

  • 重置 Controller 的 $scope 和
  • 重启 Controller 初始化?

  • 对于复杂的 Controller ,不必将每个变量都重置为其初始值会非常方便,特别是如果您真正想要的是 Controller 和范围的简单重新初始化。通过 $location.path() 再次导航到相同的 URL不过,没有帮助。

    编辑:假设我不能使用任何 $window.location hack,因为这会违反 Chrome 打包应用程序中的 CSP。

    最佳答案

    刚问完,我终于找到了一种使用 $route.reload() 的方法来解决这个问题。 .

    myapp.Controller('SampleController', function($location, $route) {
    
      $scope.navTo = function(url) {
        if ($location.path() === url) {
          $route.reload();
        } else {
          $location.path(url);
        }
      }
    
    });
    

    我仍在想,必须有一些更优雅的解决方案,但这绝对适合我。

    关于javascript - 重新初始化 Angular.js Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17413760/

    相关文章:

    javascript - Firefox 中的 AngularJS 嵌套函数调用

    angularjs - ngRepeat 中的指令时的绑定(bind)问题

    angularjs - 获取 $rootScope :inprog error, 但它需要scope.$apply 才能工作

    javascript - 如何在 AngularJS 中 Controller 之间进行通信?

    javascript - 如何使用 AngularJS 为 ion-list 元素实现动态样式?

    javascript - 如何在for循环中使用变量

    javascript - 在 angularjs 中注册服务(使用 typescript )

    javascript - AngularJS 观察指令属性表达式,动态继承作用域

    javascript - 在 AWS CodeDeploy 中获取过时的实例

    javascript - 如何使用 PHP、Angular.js 和 MySQL 在单个用户提交的多行中插入值