1
由于会有大量数据,我不想拥有占用资源的巨大循环,因此我试图找到这样做的最佳方法。我有很多常规的javascript/jquery经验,但对Angular来说是新手,并且希望通过Angularjs最佳实践来实现。在Angularjs中比较两个数组之间的对象
我有一个列表items
和用户可以“喜欢”他们。当查看所有items
时,我想通过用指示标记来显示那些最喜欢的。 items
和favorites
都位于不同的表中,并以不同的ID作为JSON返回。
JS:
$scope.favorites = [];//$http.get of JSON file
$scope.items = [];//$http.get of JSON file
$scope.isFavorite = function(itemId) {
var len = $scope.favorites. !== 'undefined' ? $scope.favorites.length : 0;
for(var i = 0; i < len; i++) {
if($scope.favorites[i].id === itemId) {
return true;
}
}
};
HTML:
<div ng-repeat="item in items">
<i ng-class="isFavorite(item.id) ? 'icon-bookmark' : 'icon-bookmark-empty'"></i>
</div>
我有一对夫妇的其他检查 “isFavorite
” 所以我试图找出在2比不检查每一次的最佳方法在一个循环中。有什么建议么?
如果两个阵列从服务器返回的REQ,你怎么能肯定的项目在这里居住? –
正如我的回答中所述,您必须将服务器请求包装在$ q.all方法中。例如$ q.all([$ http.get('/ items'),$ http.get('/ favorites')])。then(function(resultsArray){console.log(resultsArray);}); – romiem
够公平的,但这个实现不会工作...不要拖延你只是说... –