Angularjs 角度组件/控制器解析$stateprovider

Angularjs 角度组件/控制器解析$stateprovider,angularjs,controller,components,resolve,Angularjs,Controller,Components,Resolve,我试图适应Angular的组件(来自Angular Fullstack Generator生成的代码)。 我尝试按照以下方式配置路由以解决“查询”: angular.module('paizaApp') .config(function($stateProvider) { $stateProvider .state('main', { url: '/', template: '<main query="$resolve.query"><

我试图适应Angular的组件(来自Angular Fullstack Generator生成的代码)。 我尝试按照以下方式配置路由以解决“查询”:

angular.module('paizaApp')
  .config(function($stateProvider) {
    $stateProvider
    .state('main', {
      url: '/',
      template: '<main query="$resolve.query"></main>',
      resolve:{
        query:function(){return null;}
      },


 .state('starred',{
    url:'/users/:userId/starred',
    template: '<main query="$resolve.query"></main>',
    resolve:{
        query:function($stateParams){
          return {stars:$stateParams.userId};
        }
      }
  })
  .state('users',{
    url:'/users/:userId',
    template: '<main query="$resolve.query"></main>',
    resolve:{
      query:function($stateParams){
        return {user:$stateParams.userId}
      }
    }
我收到一条错误消息-未知查询提供程序。但是,如果我从构造函数中删除查询,那么错误消息是“查询未定义”。 你能看看我哪里出错了吗?我是否应该把“query”变量注入控制器?我不熟悉Angular 1,更不用说Angular 2了

更新:我也尝试过类似的方法,但没有成功:

angular.module('paizaApp')
  .config(function($stateProvider) {
    $stateProvider
    .state('main', {
      url: '/',
      template: '<main></main>',
      resolve:{
        query:function(){return null;}
      },
      controller:function($scope,query){
        $scope.query=query
      }  

您不应该在控制器
构造函数
上注入
查询
。如果已将MyController指定为状态的控制器,则可以执行此操作


查询
解析已在组件
绑定
中传递。您可以直接获取
query
的值,在
中解析。query

您不应该在controller
构造函数上注入
query
。如果已将MyController指定为状态的控制器,则可以执行此操作


查询
解析已在组件
绑定
中传递。您可以直接获取
query
resolve in
this.query

的值。我将控制器函数中的所有查询引用都更改为this.query,它工作了。谢谢我说得太快了。错误消息已消失,但this.query返回未定义的。我仍然需要找出已解析查询的值是如何进入控制器的function@AAllen正如我所看到的,该值应该是
null
,对吗?它应该返回null而不是undefined。我还将其他路径添加到上面的代码中,这些路径应该返回值……我在控制器函数中更改了对this.query的所有查询引用,结果成功了。谢谢我说得太快了。错误消息已消失,但this.query返回未定义的。我仍然需要找出已解析查询的值是如何进入控制器的function@AAllen正如我所看到的,该值应该是
null
,对吗?它应该返回null而不是undefined。我还有其他路径,我正在添加到上面的代码中,它们应该返回值。。。
angular.module('paizaApp')
  .config(function($stateProvider) {
    $stateProvider
    .state('main', {
      url: '/',
      template: '<main></main>',
      resolve:{
        query:function(){return null;}
      },
      controller:function($scope,query){
        $scope.query=query
      }  
angular.module('paizaApp')
    .component('main', {
      templateUrl: 'app/main/main.html',

      controller: MainController,
      scope:{query:'='}

    });