有没有办法将参数从一个页面发送到另一个页面而不在url中发送?

时间:2017-06-02 10:12:33

标签: javascript jquery angularjs asp.net-mvc asp.net-ajax

是否有任何方法可以将参数从一个页面发送到另一个页面,而无需在URL中绑定它们。在大多数情况下,我们会在URL中发送值,以便在下一页上检索这些值。就像在AngularJs中一样:

 <li ng-repeat="cat in x.Child"><a ng-href="#/ProductListingByCategory/{{cat.Id}}">{{cat.Name}}</a></li>

在Javascript或Jquery中,我们确实喜欢这个。

<li><a href='Product/ProductList/" + this.Id + "'>" + this.Name + </a> </li>

是否有任何替代解决方案,我们不应该在URL中发送参数?在此先感谢:)

2 个答案:

答案 0 :(得分:1)

如果您使用ui-router,则可以使用州的params属性执行此操作。

$stateProvider.state('state.name', {
    url: "/state-url",
    params: {
        myParam: null
    }
});

当您转换到州时,您可以为myParam分配所需的任何值,然后您就可以通过$stateParams访问它了。

在视图中使用

<a ui-sref="state.name({ myParam: 'Value of the param' })">Link Text</a>

在控制器中使用

$state.go('state.name', {
    myParam: 'Value of the param'
});

请注意,页面重新加载后,这些参数将为空,因为它们只存储在内存中。

答案 1 :(得分:0)

它可以通过几种方式完成,localStorage是一种常用的方法。

示例:在Controller A中,您可以使用localStorage

将变量的值设置为名称
$scope.age = 50;
localStorage.setItem('age', $scope.age);

在Controller B或外面的任何地方,您可以使用getItem获取它。

var age = localStorage.getItem('age');