在 Angular UI 路由器中为 URL 提供 ID

Give URL with ID in Angular UI Router

我有一个问题,当我编辑数据时,我的 url 没有显示 id 示例:/answer/1 or /answer/2 or /answer/3 等。我很困惑,因为我正在使用 UI ROUTER 我是初学者 UI ROUTER angularjs。你能帮助我吗 ?我应该怎么办 ?谢谢

我的路由代码:

.state({
    name: 'answer',
    url : '/answer/',
    params : {
                obj : null  
    },
    controller: 'answer-controller',
    templateUrl: 'templates/table-answer.html'
})

ng-单击转到 table-答案:

<button type="button" class="btn btn-default" ng-click="ListAnswer(data.item)"><i class="fa fa-eye"></i> View Answer</button>

将参数 $scope.ListAnswer 传递给 answer-controller.js

$scope.ListAnswer = function(data) {

    $state.go('answer', {obj : data});

};

您的状态需要稍微改变一下:

.state({
  name: 'answer',
  url : '/answer/{itemId}',
  params : {
    obj : null  
  },
  controller: 'answer-controller',
  templateUrl: 'templates/table-answer.html'
})

稍微更改您的代码以传递 url 链接中的 ID:

<button type="button" class="btn btn-default" 
  ui-sref="answer({itemId: id})">

但是,如果您想从控制器访问参数,则必须使用 $stateParams,因此在这种情况下,$stateParams.itemId

很简单。只有一件事你在那里错过了,否则你的代码是正确的。

.state({
  name: 'answer',
  url : '/answer/{answerId}',
  params : {
    obj : null  
  },
  controller: 'answer-controller',
  templateUrl: 'templates/table-answer.html'
})

现在有两种方法可以超越那个状态。

//Html

<button type="button" class="btn btn-default" ng-click="ListAnswer(data.answerId)"><i class="fa fa-eye"></i> View Answer</button>

//控制器

$scope.ListAnswer = function(answerId) {
    $state.go('answer', {answerId: answerId});
};

<button type="button" class="btn btn-default" ui-sref="answer({answerId: data.answerId})"><i class="fa fa-eye"></i> View Answer</button>