0

在我的 Angular 路由器中,我有一个 url,但我不知道如何向这个链接添加参数。

路由器.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
            ]
        }
    })

查看.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

2

您可以通过将router.js中的 url 更改为:

url: "/invitations/details/:invitationToken"
于 2016-06-07T07:03:03.743 回答
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 回答