将值推送到angularjs中的localstorage不起作用

时间:2015-10-08 08:52:56

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

当我将值推送到localstorage时,我从firebase获得价值空srting是推送如何解决它

我的代码:

    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

3 个答案:

答案 0 :(得分:1)

嗨问题得到修复,这是Updated Plunker Demo

因为Rhumborl在评论中说我发送变量,现在我得到了修复

更新代码

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

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

答案 1 :(得分:0)

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

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

我在工作时遇到了同样的问题,这对我有用。

答案 2 :(得分:0)

使用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;
                });
            };