是否可以将参数从一个页面发送到另一页,而无需在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中发送参数?预先感谢:(
如果您使用的是 ui-router
,则可以使用状态的参数属性来执行此操作。
$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'
});
请注意,在重新加载页面后,这些参数将是空的,因为它们仅存储在内存中。
可以以几种方式完成,localstorage是一种常见的方法。
示例:在控制器A中,您可以使用localstorage
将变量的值设置为名称$scope.age = 50;
localStorage.setItem('age', $scope.age);
在控制器B或外面的任何地方,您可以使用GetItem获取它。
var age = localStorage.getItem('age');