当前位置: 首页 > 面试题库 >

重新初始化Angular.js控制器

严修德
2023-03-14
问题内容

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

  • 重置控制器的$ scope,然后
  • 重新启动控制器初始化?

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

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


问题答案:

询问之后,我终于找到了一种使用解决此问题的方法$route.reload()

myapp.Controller('SampleController', function($location, $route) {

  $scope.navTo = function(url) {
    if ($location.path() === url) {
      $route.reload();
    } else {
      $location.path(url);
    }
  }

});

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



 类似资料:
  • 问题内容: 我想延迟控制器的初始化,直到从服务器收到必要的数据为止。 我找到了针对Angular1.0.1的解决方案:延迟AngularJS路由更改,直到加载模型以防止闪烁,但无法使其与Angular1.1.0一起使用 模板 ​ JavaScript http://jsfiddle.net/dTJ9N/1/ 问题答案: 由于$ http返回了promise,因此创建自己的deferred仅在htt

  • 问题内容: 我目前在 此URL实际上按照以下路由指示加载Module.js类: 这包含在index.js文件中定义的和元素中。 Module类具有和方法。这些设置了记录2的初始详细信息和装入信息。到目前为止一切正常。 现在,我的问题是,在Module.js的孙组件中,我使用以下Redirect重定向到另一个页面,例如第3页: 构造函数或componentWillMount无法运行,因此记录#3无法

  • 必需的初始值设定项的访问控制规则似乎与未指定必需的规则不同。为什么?

  • 问题内容: 是否可以在运行时重新初始化Spring Bean? 我的Bean使用静态设置,在某些情况下会更改,然后我必须重新初始化Bean。 问题答案: 你可以通过三种方法在spring上下文中更新单例bean,可以选择一种适合你的用例: 在Bean中重新加载方法在Bean中 创建一个方法,该方法将更新/重新加载其属性。根据你的触发器,从spring上下文访问bean,然后调用reload方法更新

  • 问题内容: 我正在使用jquery数据表在网格内显示数据。在初始化页面加载脚本中,请使用DateTime.Today并对其进行进一步处理,问题是在初始化页面加载后,当我尝试让用户输入日期以进行进一步处理时。我遇到以下错误。 DataTables警告(表ID =’dataTable’):无法重新初始化DataTable。 要检索此表的DataTables对象,请不传递任何参数,或参阅bRetriev

  • 我的Bean使用静态设置,在某些情况下,这些设置会改变,然后我必须重新初始化Bean。