我正在为我的项目使用AngularJS。我正在创建一个论坛,每个认证有很多资格等级和主题。 ID为“ F”的级别:初级1,初级2,初级3等。 ID为“ D”的科目:英语,数学,科学等。 所有人都有自己的唯一ID,每个级别的ID都链接到Subjects的parentID。当我单击Elementary 1时,将传递E1的ID,并显示所有具有E1的parentID的主题。 现在是我的网站的问题:http://127.0.0.1:8080/#!/discussionlist 显示论坛主页。 当我单击Primary 1时,它将转到:http://127.0.0.1:8080/#!/discussionlist/4a6f8ec4-1441-4ccc-ad4b-59fc03ca5147 当我单击英语时,它将第一个ID替换为英语的ID: 我想要实现的是将唯一ID更改为我单击的标题(http://127.0.0.1:8080/#!/discussionlist/Primary1),并将URL附加为类似(http://127.0.0.1:8080/#!/discussionlist/Primary1/English)的内容。 这是更改URL的代码:
$scope.titleClicked = function (id,title){
currentID = id
$scope.discussiontopics.splice(0);
console.log(id);
$location.path("/discussionlist/" + id);
}
Route.js:
.when("/discussionlist", {
controller: "discussionlistController",
templateUrl: "src/functions/discussion-list/template.html"
})
.when("/discussionlist/:parentid", {
controller: "discussionlistController",
templateUrl: "src/functions/discussion-list/template.html"
})
HTML:
<div ng-controller="discussionlistController">
<div align="center" style="width: 100vw; ">
<div class= "row content" align="left">
<md-input-container>
<div id="breadcrumb">
<a href="/">Home</a> > <a href="http://127.0.0.1:8080/#!/discussionlist">Level</a> > <a href="">{{o.title}}</a>
</div>
<!-- Add a short description here -->
<div class="description">
<p> {{ shortdescription }} </p>
</div>
<br />
<!-- Add a table of contents here -->
<div class="content-table">
<table class="lay" md-table>
<tr md-row>
<td md-cell>Forum</td md-cell>
<td md-cell>Post</td md-cell>
</tr md row>
<tr md-row ng-repeat="o in discussiontopics">
<td md-cell>
<a class="main-topic" ng-click="titleClicked(o.id,o.title)" aria-label="{{o.title}}">{{o.title}}</a>
<p class="sub-topic">{{o.description}}</p>
</td md-cell>
<td md-cell>
<p></p>
<p class="sub-topic">{{}}</p>
</td md-cell>
</tr md-row>
</table>
</div>
<div class="errormsg">
<p>{{ error }}</p>
</div>
</md-input-container>
</div>
</div>
问题是,有2个不同的ID,所以我必须将ID更改为parentID和childID之类的东西?抱歉,我的解释不力,问题的要点是如何将id更改为名称并使其成为相对URL。 谢谢!
答案 0 :(得分:0)
据我了解,您可以使用所需的/ english / somethingelseyouse作为URL参数,而不是将ID作为URL参数传递。 即。您可以使用$ stateParam传递您的ID,而不能在url上使用它。
.state(somestate.state, { 网址:“ / path”, 控制器:“ controller”, 参数:{someParam:null}, controllerAs:“ vm”,数据:neededData }
您还可以使用“数据”并从状态更改中传递。我不确定这是否有帮助。但是,祝你好运。