从关键值结构中获取数据,并将其与AngularJS中{ng-repeat}的值进行比较

时间:2016-05-18 03:32:14

标签: javascript angularjs

两个基本问题,

1)我有一个控制器,我在其中定义一个带有键,值结构的列表,我想根据eventID访问事件名称并将其记录在控制台中

$scope.events = [
  {eventID:3200, eventName:"Event One"}
  {eventID:3201, eventName:"Event Two"}
];

我试过了:

  if($scope.events.eventID  == 3200) {
    console.log("Ok");
  }

但它没有用:(

2)然后在我的视图中我有一个表格,我打印来自WS的数据,我想要的是根据我的$ scope.events列表中的eventID在表格上打印描述,我有一个字段我的ng-repeat命名为 event ,让我可以与列表中的eventID进行比较,但我不知道如何做到这一点。

<tr ng repeat d in data>
  <td>d.Description</td>
  <td>d.anyValue</td>
</tr>

欢迎任何帮助,我真的需要它我是Angular的新手:)

2 个答案:

答案 0 :(得分:3)

在控制器中添加方法

<tr ng-repeat="d in data | filter:search">
  <td>d.Description</td>
  <td>d.anyValue</td>
</tr>

将其添加到视图

11 490 5 

答案 1 :(得分:2)

问题1的

,请尝试使用此

if($scope.events[0].eventID  == 3200) {
  console.log("Ok");
}

使用此

进行循环
angular.forEach($scope.events, function (value) {
  if (value.eventId === 3200) {
  {
    console.log('OK');
  }
});

对于问题2,创建辅助函数以基于ID返回eventName。

$scope.getEventName = function (eventId) {
  var result = '';
  angular.forEach($scope.events, function (value) {
    if (value.eventID === eventId) {
      result = value.eventName;
      return false;
    }
  });
  return result;
}

<tr ng-repeat="d in (exportDataEventDesc.result.slice(5, exportDataEventDesc.result.length-2))">
  <td>{{d.Description}}</td>
  <td>{{d.anyValue}}</td>
  <td ng-bind="getEventName(d.merchMetrics.EVENT_ID)" style="text-align: left"></td>
</tr>