【问题标题】:Pushing values to localstorage in angularjs not working在angularjs中将值推送到本地存储不起作用
【发布时间】:2016-01-05 19:03:40
【问题描述】:

当我将值推送到 localstorage 时,我从 firebase 获得了价值 empty srting is push how to fix it

我的代码:

    var app = angular.module("bucksbucketapplication", ['firebase', 'ngStorage']);
app.controller("bucksbucket_orders", function ($scope, $firebaseArray, $firebaseObject, $http, $localStorage) {
    var fbvalues = new Firebase("https://qwertyuiop.firebaseio.com/values");
    $scope.syncfromfbvalues = $firebaseArray(fbvalues);
    $scope.$storage = $localStorage.$default({
        "orders": []
    });
    $scope.data = $localStorage.orders;
    $scope.cloneItem = function (syncfromfbvalues) {
        $scope.$storage.orders.push({
            "price": syncfromfbvalues.id
        });
    }
});

和前面我的结束代码:

<html ng-app="bucksbucketapplication">

<head>
    <script src="angular.min.js"></script>
    <script src="firebase.js"></script>
    <script src="angularfire.min.js"></script>
    <script src="ngstr.js"></script>
    <script src="script.js"></script>

</head>

<body ng-controller="bucksbucket_orders">

         <li ng-repeat="message in syncfromfbvalues">{{message.greens}} <button class="btn btn-primary" data-ng-click="cloneItem(syncfromfbvalues)">to local</button></li>
</body>

</html>

My Plunker Demo

【问题讨论】:

  • 您传递给data-ng-clicktodo 变量是什么? $scopecloneItem 中也正在查看您的控制器的$scope,而不是ng-repeat 之一,所以$scope.message 是未定义的。
  • @Rhumborl 嗨,我更新了代码,你能不能看看更新后的代码和 plunker,你能在 plunker 中解释为什么我没有得到价值吗?

标签: javascript angularjs local-storage angular-local-storage


【解决方案1】:

您好,问题已解决,这是Updated Plunker Demo

Rumborl 在评论中告诉我的原因是我磨损了发送变量,现在我得到了修复

更新代码

data-ng-click="cloneItem(message)" 然后在脚本中

$scope.cloneItem = function (message) {
        $scope.$storage.orders.push({
          "price": message.greens
        });
    }

【讨论】:

    【解决方案2】:

    而不是创建对 $localStorage 的引用,而是直接将值保存到 $localStorage。

    $localStorage.orders = []
    $scope.cloneItem = function (todo) {
        $localStorage.orders.push({
            "price": $scope.message
        });
    }
    

    我在处理它时遇到了同样的问题,它以这种方式对我有用。

    【讨论】:

    • 对不起,它不起作用.. 值没有发送到本地.. 你试过 plunker 演示了吗?
    • hi ng-localstorage 工作正常,但我无法从"price": $scope.message.greens 获取值,如果我输入"price": $scope.message,我可以获取 js 脚本的值,我正在推入它"
    【解决方案3】:

    使用 promise 进行异步调用。我对您的示例进行了一些更改。由于异步操作,您的消息对象未定义。我添加了promise,所以现在处理了。

    工作示例: http://plnkr.co/edit/I1Dyn0NmuLMDRYyS8ABU?p=preview

                    $scope.getMessages = function () {
                    var arr, fbvalues = new Firebase("https://qwertyuiop.firebaseio.com/values");
                    arr = $firebaseArray(fbvalues);
                    arr.$loaded().then(function (msg) {
                        console.log('Mymsg', msg)
                        return $scope.message = msg;
                    });
                };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-13
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 2017-06-09
      • 2011-07-29
      相关资源
      最近更新 更多