2014-09-26 52 views
0

我想更新無PARAMS的URL是可能的嗎?在我的應用我創建的狀態ui路由更新網址沒有參數

.state('webPrint', { 
    url: '/web/print/:lead', 
    templateUrl: '/application/views/web-print.html' 
}) 

,當我重定向我傳遞一個對象

var obj = JSON.stringify(lead); 
$state.go('webPrint', { lead: obj }); 

,但我的網址是什麼應該像

/web/web/print但它顯示/web/print + "stringify object data"所以我改我的代碼爲

$state.go('webPrint', { lead: obj }, { location: false, inherit: false }); 

bu現在它根本不是更改網址。我的意思是/web/web

我該如何避免stringify字符串上的url並直接傳遞給新的url?

感謝

+0

首先您所在州的URL的鉛對象數據定義本身就錯了。我編輯它。希望你接受這個編輯。你提到'但現在它根本不是改變網址。我的意思是/ web to/web,這意味着url不會從/ web更改爲/ web。那是你想要達到的目標嗎? – 2014-09-26 08:32:48

+0

接受狀態定義。但我的意思是當我重定向時,狀態已經改變,但url不。這就是爲什麼我說應該是'/ web'到'/ web/print',但是當狀態改變它會'/ web'到'/ web' – Gayan 2014-09-26 08:37:02

回答

0

您正在使用的選項location: false這意味着你告訴不改變網址。

我想說創建getter和setter服務來保存和檢索像下面

angular.module('app.service').factory('leadService', function(){ 
    var lead = {}; 
    return{ 
     getLead : function(){ 
      return lead; 
     }, 
     setLead: function(data){ 
      lead = data; 
     } 
    } 
}); 

.state('webPrint', { 
     url: '/web/print', 
     templateUrl: '/application/views/web-print.html' 
    }) 


var obj = JSON.stringify(lead); 
leadService.setLead(obj); 
$state.go('webPrint'); 

然後在您的控制器獲得使用

var lead = leadService.getLead(); 
+0

感謝您的回覆。不,我不想使用傳遞參數的服務。這不會是解決方案來使用ui-router。任何方式可以請你取消我在你的帖子上的不必要的編輯? – Gayan 2014-09-26 08:20:00

+0

我已經解開了讓你很擔心的編輯。但自己再讀一遍你的帖子。 – 2014-09-26 08:36:33