Javascript 从未执行子状态控制器

Javascript 从未执行子状态控制器,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我试着把我的脑袋绕过去,我试着实现以下逻辑: 如果没有状态,请转到状态/项目 处理/items时,从服务器检索“items”列表 收到“项目”后,转到状态/items/:item,其中“item”是服务器返回的项目列表中的第一个 在状态/items/:item呈现一个项目列表,其中相应的“item”被“高亮显示”(高亮显示部分不包括在我的代码中) 但是,不执行子状态的“控制器”功能。我打赌这是很明显的事情 这里是js(我在plunkr上也有它和附带的模板) Plunk:将此添加到您的项目中状

我试着把我的脑袋绕过去,我试着实现以下逻辑:

  • 如果没有状态,请转到状态/项目
  • 处理
    /items
    时,从服务器检索“items”列表
  • 收到“项目”后,转到状态
    /items/:item
    ,其中“item”是服务器返回的项目列表中的第一个
  • 在状态
    /items/:item
    呈现一个项目列表,其中相应的“item”被“高亮显示”(高亮显示部分不包括在我的代码中)
但是,不执行子状态的“控制器”功能。我打赌这是很明显的事情

这里是js(我在plunkr上也有它和附带的模板)


Plunk:

将此添加到您的
项目中
状态:


模板:“”,

UI路由器中的状态是分层的,它们的视图也是分层的。当前的是项的子项,它的模板也是。因此,子模板希望有一个父
ui视图
加载到其中

如果希望让子视图替换父视图,请将
items.current
的配置更改为以下内容:

{
  url: '/:id',
  views: {
    "@": {
      templateUrl: 'item.html',
      controller: function($scope, items) {
          // ...
      }
    }
  }
}

将此添加到您的
项目中
状态:


模板:“”,

UI路由器中的状态是分层的,它们的视图也是分层的。当前的是项的子项,它的模板也是。因此,子模板希望有一个父
ui视图
加载到其中

如果希望让子视图替换父视图,请将
items.current
的配置更改为以下内容:

{
  url: '/:id',
  views: {
    "@": {
      templateUrl: 'item.html',
      controller: function($scope, items) {
          // ...
      }
    }
  }
}

你的扑救不完整,根本没有显示。@Chandermani这是问题的关键,有点。你的扑救不完整,根本没有显示。@Chandermani这是问题的关键,有点。好吧,这完全有效(两种变体)。非常感谢!对于刚接触angularjs和AngularUI的人来说,这似乎不是很明显。好吧,这完全有效(两种变体)。非常感谢!但对于刚接触angularjs和AngularUI的人来说,这似乎不是很明显。。