在哪里使用角度js存储当前状态数据?

时间:2017-10-20 16:58:29

标签: angularjs angular-ui-router angularjs-routing angular-ui-router-extras

这个问题在这里发生。 Plunker链接 - > https://run.plnkr.co/NMW85SbYq76ujSjV/

我需要使用角度js将当前状态数据存储在除本地存储之外的某个位置。我在一个有角度的页面中有一个模型列表(卡片)。每张卡片中都有两个标签。第一个选项卡只有简单的文本,但第二个选项卡只有一个按钮。因此,当用户单击按钮(存在于第二个选项卡中)时,它会重定向到我们显示当前模型描述的新状态。

这里有一个问题。当用户处于第一状态(所有模型都可见)时,该用户可以自由选择任何模型中的任何选项卡。因此,假设我们有10个模型和用户选择选项卡2用于模型2,4,5和9.所以这里的视图就像模型1,3,6,7,8和10将显示选项卡1的内容和休息模型将显示标签2的内容。现在,当他/她点击第二个标签(任何型号)中的按钮时,它会重定向到模型状态的描述。这里是回到以前状态的按钮。当他/她点击此按钮时,它会重定向到模型状态,但它会显示所有模型中的选项卡1内容,而不是之前选择的选项卡。

那我怎么能处理这种情况呢。当用户从描述状态回到模型状态时,我想显示先前的状态。

请帮帮我们。请点击上面的链接获取已实施的plunker样本。任何领导将不胜感激。

谢谢:)

1 个答案:

答案 0 :(得分:2)

您必须创建服务并将“flag”变量移动到JSON。 我修改了你的plunker。请检查。

https://plnkr.co/edit/5k8hXbCIid4NonSL4Y9k?p=preview

var getData = {};

        getData.get = $http.get('template.json')
            .then(function(response) {
              console.log(response);
                return response.data;
            })

       return getData;   
});

myRouterApp.component('myModels', {
  templateUrl: 'models.html',
  controller: ['$scope', '$http', '$state','getModelSvc', function TrialCtrl($scope, $http, $state,getModelSvc) {
    $scope.models = [];
    console.log(getModelSvc);
  getModelSvc.get.then(function(data) {
          $scope.models = data.models;
              console.log($scope.models);
    })