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

时间:2018-02-21 03:16:32

标签: javascript html angularjs angular-controller

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

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>

mycontroller代码

    $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";


             }

        };

3 个答案:

答案 0 :(得分:0)

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

现在,这个想法是在函数$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

然后,当用户刷新站点时,您将创建一个函数,仅用于恢复变量中的值。您可以使用function recoverValues() { var data = sessionStorage.getItem('yourNameKey'); var { manualFile, cdSoftwares, price, referenceBooks, vpnAccounts } = data; } recoverValues(); 来恢复您的值。

EmailController <- NotificationEngine <- EmailAccessor

答案 1 :(得分:0)

您可以使用 $ window sessionStorage 属性。

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

答案 2 :(得分:0)

您可以使用此示例来满足您的要求。 Try this demo

<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>