Dependency injection 依赖项注入,错误[app router]错误

Dependency injection 依赖项注入,错误[app router]错误,dependency-injection,aurelia,Dependency Injection,Aurelia,我在使用依赖注入方面有问题,我有很多玩家可以通过 { route: 'player/:id', moduleId: 'player', name:'player' } 在我的游戏类中,我可以成功地创建玩家对象,并像这样在我的game.html中列出它们,并将它们链接到正确的路径 <ul> <li repeat.for="player of players"> <span> ${player.name}

我在使用依赖注入方面有问题,我有很多玩家可以通过

      { route: 'player/:id',  moduleId: 'player', name:'player' }
在我的游戏类中,我可以成功地创建玩家对象,并像这样在我的game.html中列出它们,并将它们链接到正确的路径

  <ul>
    <li repeat.for="player of players">
      <span>
          ${player.name}
      </span>
      <button click.trigger="removePlayer(player)">Remove</button>
      <a route-href="route: player; params.bind: {id:player.id}">
        player link
      </a>
    </li>
  </ul>
当我转到localhost:9000/#/player/1时,出现以下错误:

ERROR [app-router] Error: Error invoking Player. Check the inner error for details.
------------------------------------------------
Inner Error:
Message: key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?
Inner Error Stack:

我是aurelia的新手,不确定这里出了什么问题?

在构造函数中,第一个参数是name。如果您检查它,我想您会看到它正在获取game类对象。去掉name参数,问题应该会消失。我删除了它,但仍然是相同的问题。我现在在我的游戏类中创建了这样的玩家对象,它有一个玩家数组,“this.players.push(new player(this));”因此括号中的这个应该告诉玩家正确设置游戏对象?我不确定我是否理解。如果您正在为玩家对象提供游戏对象,则不应将其注入。当您希望容器处理这些类型依赖项的管理(创建、销毁)时,将使用依赖项注入。如果您显式地提供它们,那么您就不需要使用DI容器。是的,我认为您是正确的,我将不得不重新考虑我的实现。我敢肯定,这里的问题是,您的构造函数需要两个属性,但您只注入了一个。
ERROR [app-router] Error: Error invoking Player. Check the inner error for details.
------------------------------------------------
Inner Error:
Message: key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?
Inner Error Stack: