2015-04-29 48 views
0
$scope.post1 = angular.fromJson(window.localStorage['like'] || '{}'); 

    var like ={ 
    id:''+id 
    }; 
    $scope.post1.push(like); 

window.localStorage['like'] = angular.toJson($scope.post1); 

當我運行此代碼時,它給出$ scope.post1.push不是函數。。如何解決這個問題?Push不起作用Angularjs錯誤

+0

檢查window.localstorage'的'返回類型。這應該給你一些線索。使用'angular.isArray(window.localstorage ['like']);' – Incpetor

+0

對象沒有push方法,只有數組。 –

+0

如果post1不是數組不是問題,您可以嘗試在從本地存儲讀取後放置$ timeout。這可能是一個競爭條件的問題。 $超時(函數(){$ scope.post1.push(等);},200); – rilar

回答

1

JavaScript Object或String中沒有push()函數。但是Array有它。

也許你可以做這樣的事情,而不是:

$scope.post1.like = { id: '' + id }; 

,瞭解更多有關angular.fromJson()返回類型見https://docs.angularjs.org/api/ng/function/angular.fromJson

編輯:

好像我誤解的東西。試試這個:如果你要創建的對象的數組

http://plnkr.co/edit/PXNul5c9FbKNHxhQZjEF

,你應該通過數組angular.fromJson()

+0

我想使對象數組 – user3398632

+0

簡單,使post1成爲一個數組並在其中推入對象。 – Ritesh