[英]Changing url's ID to a specific name using AngularJS
我在我的項目中使用AngularJS。 我正在創建一個論壇,每個認證有很多資格等級和主題。 ID為“ F”的級別:初級1,初級2,初級3等。ID為“ D”的主題:英語,數學,科學等。它們都有自己的唯一ID,並且每個級別的ID都鏈接到主題的parentID。 當我單擊Elementary 1時,將傳遞E1的ID,並顯示所有具有E1的parentID的主題。 現在,問題出現了,我的網站URL: 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。 謝謝!
據我了解,您可以將需要的/ english / somethingelseyouse用作URL參數,而不是將id作為url參數傳遞。 即。 您可以使用$ stateParam傳遞您的ID,而不在網址上使用它。
.state(somestate.state,{url:'/ path',controller:'controller',params:{someParam:null},controllerAs:'vm',data:neededData}
您還可以使用“數據”並從狀態更改中傳遞。 我不確定這是否有幫助。 但是,祝你好運。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.