【问题标题】:Run function before ng-init in AngularJS在AngularJS中的ng-init之前运行函数
【发布时间】:2016-04-22 17:52:57
【问题描述】:

我有一个函数checkLogin() 在服务中设置一个变量。这始终在app.run(...) 中运行。在 ng-init 调用的一个函数中,我想使用这个变量来调用我的后端。问题是之前调用了 ng-init,所以对我的后端的调用发送了一个undefined 变量。我应该怎么做才能确保总是首先调用checkLogin()

【问题讨论】:

  • 您可以使用state/routeresolve 属性,因为您可以检查checkLogin() 方法。所以resolve 将在加载templateUrl 和@987654332 之前进行该调用@。您可以参考this answer 了解更多信息
  • 你应该使用承诺和回调来实现你想要的,而不是ng-initdocs.angularjs.org/api/ng/service/$q

标签: angularjs ng-init


【解决方案1】:

像这样这里需要登录是服务的功能

.state('app.dashboard', {
      url: "/dashboard",
      templateUrl: "partials/dashboard.html",
      controller: 'DashboardCtrl',
      activePage:'dashboard',
      resolve: {
        loginRequired: loginRequired
      }

【讨论】:

  • 这行得通,谢谢。然而,有一件事是行不通的。在我的 index.html 页面中,我包含了一个部分 navbar.html 并注入了一个控制器 homeController。但是,我如何在这里使用 resolve,因为它不是路由?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-24
  • 2016-01-01
  • 1970-01-01
  • 2019-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多