簡體   English   中英

使用AngularJS將URL的ID更改為特定名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM