我有這個angularjs數組:$scope.fav = []
其中項目(對象)在函數調用中被添加到它。這些對象的一個示例是{quote: "Some text", controller: some_controller}
當我將新對象添加到數組時,該數組保存在localstorage中。除了當我嘗試在console.log()中打印它時,數組的工作原理完全是我想要的。我得到了很多[object,Object],我只是假設它是打印的方式。這不是主要問題,但因爲數組的工作方式需要。檢查對象是否在localStorage中的AngularJS數組中
我遇到的問題是嘗試查找對象是否已經在數組中。我曾嘗試
if ($scope.fav.indexOf({quote: q, controller: c}) == -1)
,這似乎並沒有工作,因爲每個對象都將在爲索引;即使是已經在數組中。我認爲這是因爲它沒有正確讀取對象。
最後我已經使出此功能:
$scope.containsObject = function(obj, list) {
var i;
for (i = 0; i < list.length; i++) {
if (list[i] === obj) {
return true;
}
}
return false;
}
,檢查如果對象是在數組中。這裏是我把它叫做:
$scope.addToFav = function(q, c) {
$scope.value = $scope.containsObject({quote: q, controller: c}, $scope.fav)
console.log($scope.value);
}
我一直得到了$ scope.value負值,即使對象是在數組中。 對不起,複雜的解釋很長。
謝謝你的洞察力, 本
謝謝你這麼多,安東尼,這是一個相當簡單的解決方案。乾杯,本 – benjipelletier