Javascript 基于另一个数组将类添加到角度中的ng repeat对象

Javascript 基于另一个数组将类添加到角度中的ng repeat对象,javascript,arrays,angularjs,ng-repeat,Javascript,Arrays,Angularjs,Ng Repeat,如果另一个数组中存在一个对象(名称)的属性,我将尝试向ng repeat中的对象添加一个类 基本上,用户可以将项目中的对象标记为正确或不正确,从而在判断数组中创建“判断”对象。在加载页面时,我希望能够比较两个数组以添加/删除基于对象的最新判断是否不正确或正确的类 根据我下面的提琴,item1和item3应该有一个“不正确”的类。我怎样才能做到这一点 我尝试使用inArray(请参阅),但无法找出如何使其与特定属性而不是整个数组一起工作 小提琴: function itemCtrl($scope)

如果另一个数组中存在一个对象(名称)的属性,我将尝试向ng repeat中的对象添加一个类

基本上,用户可以将项目中的对象标记为正确或不正确,从而在判断数组中创建“判断”对象。在加载页面时,我希望能够比较两个数组以添加/删除基于对象的最新判断是否不正确或正确的类

根据我下面的提琴,item1和item3应该有一个“不正确”的类。我怎样才能做到这一点

我尝试使用inArray(请参阅),但无法找出如何使其与特定属性而不是整个数组一起工作

小提琴:

function itemCtrl($scope){
$scope.items=[{
项目名称:“项目1”
}, {
项目名称:“项目2”
}, {
项目名称:“项目3”
}];
$scope.ju断=[{
判决结果:“不正确”,
日期:“2016-02-01T11:03:16-0500”,
项目:{
项目名称:“项目1”
}
}, {
判断结果:“正确”,
日期:“2016-01-06T11:03:16-0500”,
项目:{
项目名称:“项目1”
}
}, {
判决结果:“不正确”,
日期:“2016-01-04T11:03:16-0500”,
项目:{
项目名称:“项目3”
}
}]
}
  • {{item.itemname}

尝试定义新函数,以便为您的项目获得合适的类


尝试定义新函数以为项目获取适当的类


既然第一个数组中的信息已经作为第二个数组中的项存在,为什么不在第二个数组中重复NG呢

然后把判断结果作为课堂上的内容

function itemCtrl($scope){
$scope.items=[{
项目名称:“项目1”
}, {
项目名称:“项目2”
}, {
项目名称:“项目3”
}];
$scope.ju断=[{
判决结果:“不正确”,
日期:“2016-02-01T11:03:16-0500”,
项目:{
项目名称:“项目1”
}
}, {
判断结果:“正确”,
日期:“2016-01-06T11:03:16-0500”,
项目:{
项目名称:“项目1”
}
}, {
判决结果:“不正确”,
日期:“2016-01-04T11:03:16-0500”,
项目:{
项目名称:“项目3”
}
}]
}

  • {{{obj.item.itemname}

既然第一个数组中的信息已经作为第二个数组中的项存在,为什么不在第二个数组中重复NG

然后把判断结果作为课堂上的内容

function itemCtrl($scope){
$scope.items=[{
项目名称:“项目1”
}, {
项目名称:“项目2”
}, {
项目名称:“项目3”
}];
$scope.ju断=[{
判决结果:“不正确”,
日期:“2016-02-01T11:03:16-0500”,
项目:{
项目名称:“项目1”
}
}, {
判断结果:“正确”,
日期:“2016-01-06T11:03:16-0500”,
项目:{
项目名称:“项目1”
}
}, {
判决结果:“不正确”,
日期:“2016-01-04T11:03:16-0500”,
项目:{
项目名称:“项目3”
}
}]
}

  • {{{obj.item.itemname}

您不能迭代
$scope。每次
ng重复
迭代时判断
数组。比如:

$scope.isItemInCorrect =  function(itemname){
    console.log($scope.judgements);
    for(var i = $scope.judgements.length; i--;) {
      if ($scope.judgements[i].item.itemname == itemname 
          && $scope.judgements[i].judgementResult == 'incorrect') {
          return true;
      } 
    }        
}

<li ng-repeat="item in items" ng-class="{'incorrect' : isItemInCorrect(item.itemname)}"  class="item"> <span>{{item.itemname}}</span>
$scope.isItemError=函数(itemname){
控制台日志(范围、判断);
对于(var i=$scope.judictions.length;i--;){
如果($scope.judictions[i].item.itemname==itemname
&&$scope.judictions[i].judictiontresult==“不正确”){
返回true;
} 
}        
}
  • {{{item.itemname}

  • 您不能在
    $scope中迭代。每次
    ng重复
    迭代时,判断
    数组。比如:

    $scope.isItemInCorrect =  function(itemname){
        console.log($scope.judgements);
        for(var i = $scope.judgements.length; i--;) {
          if ($scope.judgements[i].item.itemname == itemname 
              && $scope.judgements[i].judgementResult == 'incorrect') {
              return true;
          } 
        }        
    }
    
    <li ng-repeat="item in items" ng-class="{'incorrect' : isItemInCorrect(item.itemname)}"  class="item"> <span>{{item.itemname}}</span>
    
    $scope.isItemError=函数(itemname){
    控制台日志(范围、判断);
    对于(var i=$scope.judictions.length;i--;){
    如果($scope.judictions[i].item.itemname==itemname
    &&$scope.judictions[i].judictiontresult==“不正确”){
    返回true;
    } 
    }        
    }
    
  • {{{item.itemname}

  • 谢谢你,这让我在那里走了大半步。使用此技术是否可以确保判决是基于日期属性的最新判决?对于特定名称,是最新判决?您应该只使用
    sort()
    function是的,正如您在我的小提琴中看到的,item1被判了两次。应采用最新的方法。我更改了日期,这样第二次判决就有了最近的日期,所以你可以看到完美!谢谢你的帮助谢谢你,这让我走了大部分路。使用此技术是否可以确保判决是基于日期属性的最新判决?对于特定名称,是最新判决?您应该只使用
    sort()
    function是的,正如您在我的小提琴中看到的,item1被判了两次。应采用最新的方法。我更改了日期,这样第二次判决就有了最近的日期,所以你可以看到完美!感谢您的帮助这是一种有趣的方法,但不起作用,因为不会判断所有项目,这意味着它们将从数组中丢失。如果这两个数组来自两个不同的查询,我认为如果您将查询组合到一个数组中,并返回带有额外参数或状态正确的判断数组中的所有内容,不正确,没有。我认为这种方法将最小化客户端的处理和代码这是一种有趣的方法,但不起作用,因为不是所有项目都会被判断,这意味着它们将丢失
    $scope.isItemInCorrect =  function(itemname){
        console.log($scope.judgements);
        for(var i = $scope.judgements.length; i--;) {
          if ($scope.judgements[i].item.itemname == itemname 
              && $scope.judgements[i].judgementResult == 'incorrect') {
              return true;
          } 
        }        
    }
    
    <li ng-repeat="item in items" ng-class="{'incorrect' : isItemInCorrect(item.itemname)}"  class="item"> <span>{{item.itemname}}</span>