0

我有一個問題,當我編輯的數據,我的網址沒有顯示ID例如:/answer/1 or /answer/2 or /answer/3等林困惑,因爲即時通訊使用UI ROUTER 我是一個初學者使用UI ROUTER angularjs 。你可以幫我嗎 ?我該怎麼辦 ?由於給人以ID地址在角UI路由器

我的路由代碼:

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

NG-點擊進入表答案:

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

通PARAMS $ scope.ListAnswer到答案,controller.js

$scope.ListAnswer = function(data) { 

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

}; 

回答

3

這很簡單。只有一件事你錯過了,否則你的代碼是正確的。

.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}); 
}; 

OR

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

{obj:data} - >向answer.controller.js發送響應,並使用它們如果我使用{obj:answerID },我的響應數據如何使用或我應該使用數據和答案ID? – userpr

+0

因爲{obj:data}非常重要 – userpr

+0

我可以使用兩個參數嗎?像{obj:data}和{obj:data.answerId} – userpr

1

你的狀態需要略微改變:

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

稍微改變你的代碼沿着ID傳遞鏈接的網址:

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

如果你想不過來訪問從控制器的參數,你必須使用$ stateParams,所以在這種情況下,$ stateParams.itemId

+0

謝謝您的回答,但可以與UI SREF給出多個PARAMS? – userpr

+0

是的,您可以在ui-sref中傳遞多個參數。下面是一個例子:ui-sref =「answer({itemId:id,itemName:name}) –