Javascript angularjs嵌套路由不';t负载布局

Javascript angularjs嵌套路由不';t负载布局,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,当我访问example.com/dashboard时,加载index.html失败,我只能获取dashboard/index.html中的原始html。这很奇怪,因为在index.html中,我在体内声明了,所以我希望dashboard/index.html是index.html的孩子 推送了我的代码的一部分。实际上没有嵌套状态;您只需要有一个主index.html文件,作为应用程序、其依赖项和视图的容器。Angular不会加载主index.html页面,index.html页面将加载Angul

当我访问
example.com/dashboard
时,加载
index.html
失败,我只能获取
dashboard/index.html
中的原始html。这很奇怪,因为在
index.html
中,我在体内声明了
,所以我希望
dashboard/index.html
index.html
的孩子


推送了我的代码的一部分。

实际上没有嵌套状态;您只需要有一个主index.html文件,作为应用程序、其依赖项和视图的容器。Angular不会加载主index.html页面,index.html页面将加载Angular


因此,您的“主”州不需要有templateUrl。例如,如果仪表板视图的内部视图可以根据用户操作加载不同的模板,则将使用嵌套状态。有关嵌套视图的一些示例用例,请参见Angular UI Router。

您不能像@jakeblues所说的那样将index.html声明为第一个
状态

尝试将
index.html
中的所有特定内容放入新模板中:

.state('home', {
      url: '/',
      templateUrl: 'index.html',
      abstract:true
 })
.state('home.dashboard', {
      url: '/dashboard',
      templateUrl: 'dashboard/index.html',
      controller: 'dashboardCtrl'
 })

我从回购协议上下载了你的代码

我看到的主要问题是,在执行example.com/dashboard时,没有加载角度代码

.state('home', {
      url: '/',
      templateUrl: 'home.html',
      controller: 'homeCtrl'
 })
.state('dashboard', {
      url: '/dashboard',
      templateUrl: 'dashboard/index.html',
      controller: 'dashboardCtrl'
 })
这将使您的公用文件夹成为加载项目的文件夹

当您访问example.com时,会加载角度代码,因为您会收到public/index.html文件的响应,该文件包含角度代码,并且是正确的

但当您执行example.com/dashboard时,它实际上加载的是html文件/public/dashboard/index.html,其中没有任何代码

尝试在dashboardCtrl.js上执行警报。您将一无所获,因为它没有被加载。它只包含在index.html文件中,该文件根本没有加载

尝试将url更改为仪表板并删除“home.dashboard”

app.use(express.static(path.join(__dirname, 'public')));

我尝试了这个
$stateHelperProvider.setNestedState({name:'app',templateUrl:'index.html',子项:[{name:'dashboard',templateUrl:'dashboard/index.html',}]})它不起作用。我想把我的样式放在home.htmlc你能解释一下你的意思吗?我想在layout.html中加载dashboard/index.html,dashboard/index.html不应该包含任何css或js,它们应该在layout.htmls中。那么我必须把我的样式放在dashboard/index.html中吗?不,你不必把样式放在dashboard/index.html中。您的样式可以在index.html中。很好。请查看我的回复以处理样式。
.state('dashboard', {
  url: '/dashboards',
  templateUrl: 'dashboard/index.html',
  controller: 'dashboardCtrl'
 })