当我将值推送到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>
答案 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;
});
};