Изменение идентификатора URL на конкретное имя с помощью AngularJS - PullRequest
0 голосов
/ 20 сентября 2018

Я использую AngularJS для своего проекта.Я создаю форум, где есть много уровней квалификации и предметов для каждой квалификации.Уровни с идентификатором типа «F»: Элементарный 1, Элементарный 2, Элементарный 3 и т. Д. Субъекты с идентификатором типа «D»: английский, математика, естественные науки и т. Д. У всех есть свой уникальный идентификатор, а идентификатор каждого уровня связан сparentID Предметов.Когда я нажимаю на Элементарный 1, передается идентификатор E1 и отображаются все субъекты с parentID E1.Итак, теперь вопрос, URL моего сайта: http://127.0.0.1:8080/#!/discussionlist показывает домашнюю страницу форума. Homepage Когда я нажимаю на Первичную 1, она переходит к: http://127.0.0.1:8080/#!/discussionlist/4a6f8ec4-1441-4ccc-ad4b-59fc03ca5147 First level Когда я нажимаю на английский, он заменяет 1-й идентификатор на английский: enter image description here То, чего я пытаюсь добиться, - это изменить уникальный идентификатор на заголовокна что я нажимаю (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 разных идентификатора, поэтому мне нужно изменить свой идентификатор на что-то вроде parentID & childID?Извините, я не так хорош в объяснении, суть вопроса в том, как изменить идентификатор на имя и сделать его относительным URL. Спасибо!

1 Ответ

0 голосов
/ 20 сентября 2018

Из того, что я понимаю, вместо того, чтобы передавать свой идентификатор в качестве URL-параметра, вы можете использовать то, что вам нужно / english / что-то еще, в качестве URL-параметра.то есть.вы можете использовать $ stateParam для передачи своего идентификатора и не использовать его по URL.

.state (somestate.state, {url: '/ path', controller: 'controller', params: {someParam: null}, controllerAs: 'vm', data: requiredData}

Вы также можете использовать 'data' и передавать данные из состояния изменения. Я не уверен, поможет ли это. Но удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...