Javascript 角度ui-路由器页面浏览器刷新显示空值?如何保持数据?

Javascript 角度ui-路由器页面浏览器刷新显示空值?如何保持数据?,javascript,angularjs,angular-ui-router,angular-routing,Javascript,Angularjs,Angular Ui Router,Angular Routing,我正在使用Angular Js Ui路由器,当单击按钮时,我已经调用了函数,接管了参数,调用了服务,并从Db获得了结果。工作很好 在时间点上 当浏览器刷新页面时,该值为null,并返回get 500错误 它查看状态配置路径并转到控制器,其中有空值。 如何在ui状态提供程序中持久化数据 Url Look like : http://localhost/Myproject/#/home/Retailer/retailerId=1?retailerCode=3 When I click the bu

我正在使用Angular Js Ui路由器,当单击按钮时,我已经调用了函数,接管了参数,调用了服务,并从Db获得了结果。工作很好

在时间点上

当浏览器刷新页面时,该值为null,并返回get 500错误

它查看状态配置路径并转到控制器,其中有空值。 如何在ui状态提供程序中持久化数据

Url Look like :
http://localhost/Myproject/#/home/Retailer/retailerId=1?retailerCode=3

When I click the button i have carry over the value
 $state.go('Home.retailer', { 'retailerId': $scope.param1, 'retailercode': $scope.param1});



While refersh the page, the values getting null in module.

.state('home.retailer', {

        url: '/contract/:retailerId:9?retailercode:1',
        params:{
                   'retailerId': '9', 'retailercode': '1' 
       },
        views: {
            '@': {
                templateUrl: baseUrl + 'retailr/retailerList',
                controller: 'home',
            }
        },
        data: {
           Name: '',
            Img: 'Images/1.png'
        }

    })
注: 当点击按钮时,我已经得到了值,所以服务将返回数据

问题: 刷新页面时,它进入模块并检查home.retailer,然后返回服务。如何在刷新浏览器时保存数据

这到底能做什么:参数:{ 'retailerId':'9','retailercode':'1' },

Because of null, response Here I am passing the retailer id and Retailer code in service inside the controller. 
 `RetailerService.pageLoad($scope.retailerId,$scope.retailercode)` when Click the button ,
RetailerService.pageLoad($scope.retailerId :9 ,$scope.retailercode :1) , 



Page Refresh RetailerService.pageLoad($scope.retailerId : null,$scope.retailercode : null)` 

要在刷新时保留数据,需要将其存储在浏览器存储器中。下面是一个使用localStorage的工厂的好例子

app.factory("storageFactory", function($window) {
  return {
    setData: function(val) {
      $window.localStorage && $window.localStorage.setItem('my-storage', val);
      return this;
    },
    getData: function() {
      return $window.localStorage && $window.localStorage.getItem('my-storage');
    }
  };
});
因此,您将在控制器中的不同时间设置数据,然后在页面加载时调用get data以确保捕获任何预设变量


编辑:如下所述,sessionStorage不是localStorage,而是一个选项。您的选择应取决于您的需要。

要在刷新时保留数据,您需要将其存储在浏览器存储器中。下面是一个使用localStorage的工厂的好例子

app.factory("storageFactory", function($window) {
  return {
    setData: function(val) {
      $window.localStorage && $window.localStorage.setItem('my-storage', val);
      return this;
    },
    getData: function() {
      return $window.localStorage && $window.localStorage.getItem('my-storage');
    }
  };
});
因此,您将在控制器中的不同时间设置数据,然后在页面加载时调用get data以确保捕获任何预设变量



编辑:如下所述,sessionStorage不是localStorage,而是一个选项。您的选择应取决于您的需要。

我们需要控制器和db的服务。此外,您在
$state.go中添加了一个H('Home…
当您的州名为Home…@Walfrat时,这是示例代码,出现问题的原因是两个字段中的空值,retailerId':'9','retailercode':'1'。我需要在浏览刷新页面时保留数据。当我们不知道如何分配
$scope.param1
值时,我们应该如何回答?请告诉我们与
$状态一起运行的完整控制器。正常运行。@walfrat:不要混淆问题。我有一个主页,当我点击数据时有按钮,它进入嵌套视图,我有vaue Retaiilerid 9和零售商代码:1。问题:现在我在零售商页面,没有事件,我在DoM.Brow之外ser页面刷新时,不会在零售商代码和零售商Id中获取值。它不会直接进入控制器,它将进入应用程序并搜索路由,匹配路由,服务期望值,但不会获取值。如果该值位于URL中,并且已在状态配置中定义,则可以通过注入
$statePa来获取该值rams
进入控制器我们需要控制器和db的服务。此外,您在
$state.go中加了一个H('Home…
当您的州名为Home…@Walfrat时,这是示例代码,出现问题的原因是两个字段中的空值,retailerId':'9','retailercode':'1'。我需要在浏览刷新页面时保留数据。当我们不知道如何分配
$scope.param1
值时,我们应该如何回答?请告诉我们与
$状态一起运行的完整控制器。正常运行。@walfrat:不要混淆问题。我有一个主页,当我点击数据时有按钮,它进入嵌套视图,我有vaue Retaiilerid 9和零售商代码:1。问题:现在我在零售商页面,没有事件,我在DoM.Brow之外ser页面刷新时,不会在零售商代码和零售商Id中获取值。它不会直接进入控制器,它将进入应用程序并搜索路由,匹配路由,服务期望值,但不会获取值。如果该值位于URL中,并且已在状态配置中定义,则可以通过注入
$statePa来获取该值rams
进入您的控制器中,您对此的评论不是使用本地存储,而是使用会话存储。本地将在会话和浏览器之间保持,这可能不是首选。浏览器关闭时,会话将被破坏。如果您不想使用会话,另一个选项是设置factory服务以在scopeIs中存储数据e没有在会话、cookie和本地存储中存储的任何其他方式。我可以传递到params并在services中获取值吗?如果您想以任何方式保留不属于URI的数据,您需要本地存储或会话,refresh=丢失所有javascript上下文。也可以使用非常真实的会话存储。开发人员选择ld必须是特定于他们的用例。因为它不是静态的,它的动态的可能是现在我在零售商代码10中,数据库中有很多记录。在UI页面刷新中,如果我将每个id存储在localstorage中不是一件好事情,对此的一个注释是不使用本地存储,而是使用会话存储。local将在整个会话中保持可能不是首选的ons和浏览器。当浏览器关闭时,会话将被破坏。如果不想使用会话,另一个选项是设置factory服务以将数据存储在Scope中。是否有其他方法不存储在会话、Cookie和本地存储中。如果您想ep数据不属于URI的任何部分,您需要本地存储或会话,刷新=丢失所有javascript上下文。也可以使用非常真实的会话存储。开发人员选择的内容应特定于他们的用例。因为它不是静态的,它的动态的可能是现在我在零售商代码10中,在在UI页面刷新时,如果我将每个id都存储在localstorage中,这不是一件好事