ui-route更新url没有param

时间:2014-09-26 07:54:58

标签: angularjs angular-ui-router

我试图在没有参数的情况下更新网址是否可能?在我的应用程序上我创建了状态

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

但现在它根本没有改变网址。我的意思是/web/web

如何避免在url上使用stringify字符串并将其直接传递给新网址?

谢谢

1 个答案:

答案 0 :(得分: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();
相关问题