AngularJs,搜索一个数组与另一个数组

时间:2017-08-14 14:54:22

标签: angularjs

所以我有两个数组,一个看起来有点谎言

$scope.users = {id: 1, email: xxx} {id: 2, email: xxx}....

我有这个

$scope.booking = {id: 20, regid: 2} ....

因此,目前用户正在显示在表格中。

但是如果用户有预订,我希望表格行有一个红色标记(不能共享表格,但它是一个基本的ng-repeat)所以如果用户标识在预订数组中存在regid,那么推送一些东西到用户

任何帮助都是邪恶的

2 个答案:

答案 0 :(得分:0)

首先,您的$scope.users$scope.booking对象不是数组...

我举例说明如何知道用户是否有书,所以继承人是代码和 plnkr

魔法在foreach和for循环中。

<强> HTML

<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.5.x" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.11/angular.min.js" data-semver="1.5.11"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">

    <table>
      <thead>
        <th>ID</th>
        <th>NAME</th>
        <th>HAS BOOK</th>
      </thead>
      <tbody>
        <tr ng-repeat="user in users">
          <td>{{user.id}}</td>
          <td>{{user.name}}</td>
          <td>{{user.hasBook}}</td>
        </tr>
      </tbody>
    </table>
  </body>

</html>

<强> CONTROLLER

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';


  $scope.users = [
    {id:1, name:'john'},
    {id:2, name:'barney'},
    {id:3, name:'moroni'},
    {id:4, name:'adam'},
    {id:5, name:'sam'}
  ];

  $scope.books = [
    {id:1, regId:1, name:'book1'},
    {id:2, regId:2, name:'book1'},
    {id:5, regId:3, name:'book1'},

  ];

  angular.forEach($scope.users, function(value, index){
    for(var i =0; i< $scope.books.length; i++){
      if(value.id === $scope.books[i].id){
        value.hasBook = true;
      }
    }
  });
  console.log($scope.users);


});

答案 1 :(得分:-1)

您可以使用过滤器查找具有conrcrete用户标识的任何用户是否在预订表中。 检查此示例:

info.plist