Javascript 使用angularjs,如何仅在值不在数组中时显示元素?

Javascript 使用angularjs,如何仅在值不在数组中时显示元素?,javascript,angularjs,Javascript,Angularjs,如果我有这样一个数组和json。我省略了一些不需要解释的内容 $scope.socialTypes = ["facebook", "pintrest", "twitter", "linkedin"]; $scope.socialJson = [{"type": "facebook"}, {"type": "twitter"}] 我有这样的html <span class="btn btn-lg btn-squared" ng-repeat="(socialTypeKey, socialT

如果我有这样一个数组和json。我省略了一些不需要解释的内容

$scope.socialTypes = ["facebook", "pintrest", "twitter", "linkedin"];
$scope.socialJson = [{"type": "facebook"}, {"type": "twitter"}]
我有这样的html

<span class="btn btn-lg btn-squared" ng-repeat="(socialTypeKey, socialTypeValue) in socialTypes">
    <span ng-repeat="socialData in socialJson">
        <a ng-if="socialData.type == socialTypeKey && socialData.golden && socialData.active" class="{{socialTypeValue.aclass}}"><i class="{{socialTypeValue.iclass}}"></i></a>
        <i ng-if="socialData.type == socialTypeKey && socialData.golden && !socialData.active" class="{{socialTypeValue.iclass}}"></i>
        <i ng-hide="!inArray(socialTypeKey, socialJson)" class="{{socialTypeValue.iclass}}"></i>
    </span>
</span>


忽略这里的golden、active和class。我想知道的是,每当社交类型不在socialJson变量中时,我需要显示第3个元素。因此,基本上,前两个ng ifs将显示social是否同时在两者中,第三个ifs将显示social是否不在数组中,就像我模拟的那样

应该能够向作用域添加isInside函数。用您喜欢的任何实现替换我对下划线的使用

JS:

$scope.socialTypes = ["facebook", "pintrest", "twitter", "linkedin"];
$scope.socialJson = [{"type": "facebook"}, {"type": "twitter"}]
$scope.isInside = function(array, item) {
  return _.contains(array, item);
}
HTML:



这已经足够接近了,尽管为了我的目的我不得不对其进行一些修改,但我想这是唯一的方法。我不想在其他地方大肆宣传我自己的答案(太多…),但我认为这是一种在模板中包含一组帮助函数的好方法:
<span class="btn btn-lg btn-squared" ng-repeat="(socialTypeKey, socialTypeValue) in socialTypes">
    <span ng-repeat="socialData in socialJson">
        <a ng-if="socialData.type == socialTypeKey && socialData.golden && socialData.active" class="{{socialTypeValue.aclass}}"><i class="{{socialTypeValue.iclass}}"></i></a>
        <i ng-if="socialData.type == socialTypeKey && socialData.golden && !socialData.active" class="{{socialTypeValue.iclass}}"></i>
        <i ng-hide="!isInside(socialJson, socialTypeKey)" class="{{socialTypeValue.iclass}}"></i>
    </span>
</span>