首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我需要将值存储在angularjs函数中。

我需要将值存储在angularjs函数中。
EN

Stack Overflow用户
提问于 2018-02-21 03:16:31
回答 3查看 461关注 0票数 0

I具有ng-以myFunc()的名称更改myFunc()来存储来自html listitem的响应。响应值被保存在函数的局部变量中,但是当我刷新控制器或页面时,值将被删除。我需要在多个页面或控制器引用之后,在ng更改中存储myFunc()中的值,该值将存储在控制器变量中,以便在页面装载上执行进一步的逻辑操作。

代码语言:javascript
复制
myhtml code

<div class="col-sm-4">
    <ol name="ManualFiles" title="Select" required validType="select" ng-
     change="myFunc()" ng-model="data.manualsFiles" ng-selected="
     {{data.manualsFiles}}">
      <li nya-bs-option="type in manualsFiles" data-value="type.key">
      <a> {{type.val}} </a>
      </li>
     </ol>
  </div>

肌控制器码

代码语言:javascript
复制
    $scope.myFunc = function() {


         var manualFile=$scope.data.manualsFiles;
         var cdSoftwares=$scope.data.cdSoftware;
         var price=$scope.data.priceBook;
         var referenceBooks=$scope.data.referenceBook;
         var vpnAccounts=$scope.data.vpnAccount;




         if((manualFile && cdSoftwares && price &&  referenceBooks && vpnAccounts)!==0)
             {

             $scope.isTypeDisabled=false;
             }
         else
             {
             $scope.isTypeDisabled=true;
             $scope.data.status="Pending";


             }

        };
EN

回答 3

Stack Overflow用户

发布于 2018-02-21 04:00:59

使用sessionStorage试一试。这样,您就不会丢失您的值--至少用户会关闭该窗口。

现在,想法是,在函数myFunc中,

代码语言:javascript
复制
$scope.myFunc = function() {

         var manualFile=$scope.data.manualsFiles;
         var cdSoftwares=$scope.data.cdSoftware;
         var price=$scope.data.priceBook;
         var referenceBooks=$scope.data.referenceBook;
         var vpnAccounts=$scope.data.vpnAccount;

         //Here, use sessionStorage to save your values in the browser.
         var data = {'manualFile': manualFile, 'cdSoftwares': cdSoftwares, 'price': price, 'referenceBooks': referenceBooks, 'vpnAccounts': vpnAccounts}

         sessionStorage.setItem('yourNameKey', data);

         if((manualFile && cdSoftwares && price &&  referenceBooks && vpnAccounts)!==0)
             {

             $scope.isTypeDisabled=false;
             }
         else
             {
             $scope.isTypeDisabled=true;
             $scope.data.status="Pending";


             }

        };

然后,当用户刷新站点时,您将创建一个函数来恢复变量中的值。您可以使用destructuring assignment恢复您的值。

代码语言:javascript
复制
function recoverValues() {
  var data = sessionStorage.getItem('yourNameKey');
  var { manualFile, cdSoftwares, price, referenceBooks, vpnAccounts } = data;
}

recoverValues();
票数 0
EN

Stack Overflow用户

发布于 2018-02-21 04:06:02

您可以使用sessionStorage属性$window

注意:使用sessionStorage存储的数据只能在该会话中使用。(当浏览器选项卡关闭时,数据将被删除)

票数 0
EN

Stack Overflow用户

发布于 2018-02-21 05:23:04

您可以使用此示例实现您的需求。试试看这个演示

代码语言:javascript
复制
<script type="text/javascript">
        var app = angular.module('MyApp', ["ngStorage"])
        app.controller('MyController', function ($scope, $localStorage, $sessionStorage, $window) {
            $scope.Save = function () {
                $localStorage.LocalMessage = "LocalStorage: My name is Pet Jones.";
                $sessionStorage.SessionMessage = "SessionStorage: My name isPet Jones.";
                                    OR
               $sessionStorage.setItem("status", "pending");
            }
            $scope.Get = function () {
                $window.alert($localStorage.LocalMessage + "\n" + $sessionStorage.SessionMessage);
                                    OR
                console.log($sessionStorage.getItem("status"))
            }
        });
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48897659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档