0

Angular のルーターには URL がありますが、このリンクにパラメーターを追加する方法がわかりません。

router.js

.state("support.root.gateways.invitationDetails", {
        url: "/invitations/details?invitationToken",
        templateUrl: "gateways/views/IvnitationDetails.html",
        controller: "InvitationDetailsController as ctrl",
        data: {
            title: "TITLE_GATEWAYS",
            requireLogin: true,
            roles: [
                ROLES.ROOT,
                ROLES.ADMIN,
                ROLES.SUPPORT3,
                ROLES.SUPPORT2,
                ROLES.SUPPORT1,
                ROLES.ENDUSER,
                ROLES.MAINTAINER
            ]
        }
    })

View.html

<td>
    <a href="" ui-sref="support.root.gateways.invitationDetails({   invitationToken:  ctrl.invitationToken})">
        {{ "INVITATIONS_DETAILS" | translate}}
    </a>
</td>

およびInvitationDetailsController.js

angular.module("support.gateways")
    .controller("InvitationDetailsController", function(Gateways, $stateParams) {
    var vm = this;
    vm.invitationToken = $stateParams.invitationToken;
    alert($stateParams.invitationToken);
});
4

2 に答える 2

0
.state('support.root.gateways.invitationDetails', {
    url: '/invitations/details?invitationToken',
    templateUrl: "'gateways/views/InvitationDetails.html',
    controller: 'InvitationDetailsController',
    controllerAs: 'ctrl',
    params: {
      invitationToken: null
    },
    data: {
        title: 'TITLE_GATEWAYS',
        requireLogin: true,
        roles: [
            ROLES.ROOT,
            ROLES.ADMIN,
            ROLES.SUPPORT3,
            ROLES.SUPPORT2,
            ROLES.SUPPORT1,
            ROLES.ENDUSER,
            ROLES.MAINTAINER
        ]
    }
})

あなたの stateProvider の状態で、コントローラー行を変更して controllerAs を追加し、 params行も追加しました。

次に、リンクについては、次のようにします。

<a href="" ui-sref="support.root.gateways.invitationDetails({ invitationToken:  ctrl.invitationToken})">
  {{ "INVITATIONS_DETAILS" | translate}}
</a>
于 2016-06-07T07:30:54.717 に答える