generator-angular-fullstack 和 UI 路由器解析

generator-angular-fullstack and UI Router resolve

我使用 generator-angular-fullstack 创建了一个 Angular 1.6 应用程序,但我无法在 UI 路由器中获得我的解析值。

我试过这样使用它:

路线:

$stateProvider.state('main', {
  url: '/',
  template: '<main></main>',
  resolve: {
    test: function() { return 'test' }
  }
});

控制器

constructor($state, socket, localStorageService, test) {
}

这会导致 unknow provider 错误。

这样:

路线:

$stateProvider.state('main', {
  url: '/',
  template: '<main test="$resolve.test"></main>',
  resolve: {
    test: function() {
      return 'test'
    }
  }
});

分量:

component('main', {
  template: require('./main.pug'),
  bindings: {
    test: '='
  },
  controller: MainController
})

控制器:

constructor($state, socket, localStorageService) {
  console.log(this.test)
}

并且 this.test 的值始终是 Undefined,无论我做什么。

我错过了什么?它似乎对每个人都有效。

我发现了问题。如果有人遇到同样的问题,那是因为第二种方法在 Angular 1.5 中有效,但在 Angular 1.6 中,您必须在 $onInit 方法中访问已解析的变量,而不是直接在构造函数中访问。

这是一个可以正常工作的更新:

constructor($state, socket, localStorageService) {
}

$onInit() {
  console.log(this.test)
}