gpt4 book ai didi

javascript - AngularJS 路由附加错误的目录名称

转载 作者:行者123 更新时间:2023-11-28 00:05:47 25 4
gpt4 key购买 nike

当我们的一位开发人员离开时,我被安排到这个 AngularJS 项目(我通常是一名 python/Java 开发人员),并且该项目正在缓慢发展。

我正在使用 AngularJS v1.0.8。是的,我知道它很旧,一旦我现在可以获得完全工作的版本,我计划将其转换到最新的稳定版本。

我现在处于导航行为异常的部分。我有这两个表单及其受人尊敬的 Controller ,应该从索引页链接。

奇怪的是,这段代码在旧系统上运行得很好,据我所知,后端或前端没有任何变化。

这是 index.html 页面的一部分,用于链接/加载其他页面。

<div id="nav" ng-controller="navController" class="wrap">
<div class="container">
<ul>
<li><a ui-sref="form.choose" ui-sref-active="active">Available Courses</a></li>
<li><a ui-sref="form.review" ui-sref-active="active">My Submissions</a></li>
<!-- <li><a href="#">Approve Submissions</a></li> -->
<!-- <li ng-show="session.isAdmin()"><a href="#">Admin</a></li> -->
<li ng-show="session.isAdmin()"><a ui-sref="reports" ui-sref-active="active">Reports</a></li>
</ul>
</div>
</div>

这是 View 的主目录结构...

└── views
├── form
│   ├── form.choose.tpl.html
│   ├── form.done.tpl.html
│   ├── form.edit.tpl.html
│   ├── form.review.tpl.html
│   ├── form.tpl.html
│   └── rubric.directive.tpl.html
├── home
│   └── home.tpl.html
└── reports
└── reports.tpl.html

当我尝试超链接时发生的情况是,它会在链接的开头附加一个额外的 /form

404 error for forms/view/form link

所以此时,我只是想找出错误发生的位置。

  1. “ref”的 HTML 代码错误
  2. 错误的 AngularJS 路由代码
  3. 目录结构错误

最佳答案

这可能是嵌套状态和未正确设置 state.url 的影响。例如,假设您将状态定义为:

.config(function config($stateProvider) {
$stateProvider.state('form', {
url: '/form'
})
.state('form.choose', {
url: '/form/choose'
})
.state('form.review', {
url: '/review'
});
})

Ui-router 会将选择和审查视为表单的子状态。这会自动将其 url 作为前缀附加到其子项。那么 form.choose 状态的 sref 将是“/form/form/choose”,而 form.review 状态的 sref 将是“/form/review”。

希望这有帮助!

编辑:还要确保 ui-router 的版本在您的系统和旧系统之间保持一致。旧版本可能使用子状态实现之前的版本,这就是它起作用的原因。

关于javascript - AngularJS 路由附加错误的目录名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31348773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com