不确定我的问题的标题是否正确, 我将搜索的输入存储在一个数组中,并将该数组放在一个cookie中。当页面刷新时,我使用init函数初始化arr,用于与cookie中存储的arr重复使用。但我面临错误:
nameapp.controller('NameCtrl',
function($scope,$http,$window, $cookieStore,$sessionStorage,$cookies ,myService){
// code for storing array in the cookie
$http.get('https://finance.google.com/finance/info?client=w&q='+$scope.stock).success(function(data,status)
{
$scope.share=JSON.parse(data.substring(5,data.length-2));
$scope.arr.push($scope.share);----> error here
console.log(status+"-------"+JSON.stringify($scope.arr));
}).error( function ()
{
alert("fail");
})
}
;
$scope.init = function () {
var s =$cookies.get("arr");
$scope.arr=$cookies.get("arr") ;
console.log("JSON.stringify($cookies.get('arr'))="+s);
}
}
);
</script>
</head>
<body ng-controller="NameCtrl" ng-init="init()">
<form ng-submit="finddet()">
<input type="text" ng-model="stock">
<input type="submit">
</form>
<ul>
<li ng-repeat="name in names">{{name}}</li>
<li ng-repeat="sr in arr track by $index"> value : {{sr.l_cur}} <a href='#' ng-click="removename(sr)"> remove </a></li>
</ul>
</body>
</html>
on ---&gt;行,控制台错误:
TypeError: $scope.arr.push is not a function
at (index):99
不确定如何使用页面加载中的cookie初始化ng repeat数组。请修改。
答案 0 :(得分:0)
Cookie是String,不能是另一个对象。因此,在保存之前将数组转换为json,并在加载时恢复为对象