数组与单个对象-AngularJS / Javascript(基本)

时间:2018-12-03 16:42:49

标签: javascript angularjs

我有一个非常基本的数组

[
  {
    ticketId: 1,
    name: "John",
  },
  {
    ticketId: 124,
    name: "Ads"
  } 
]

我在选择中显示数据

<ul class="dropdown-menu">
    <li ng-repeat="ticket in tickets">
        <a href="#">{{ticket.ticketId}}</a>
    </li>
</ul>

但是如何使用代码中另一个位置的选定票证中的数据

喜欢

 <tr>
     <th>Name</th>
     <td>{{???}}</td>
 </tr>

控制器

   $http.get(ticketAPIBaseUrl + '/tickets/' + customerNumber, 
     {withCredentials: false}).then(response => {
       console.log(response);
       vm.tickets = response.data;
   }, error => {
      console.log(error);
   });

2 个答案:

答案 0 :(得分:1)

您可以像这样使用filter: HTML:

<input type="number" ng-model="tick"/>
<table>
     <tr ng-repeat="ticket in tickets | ticketFilter:tick">
       <td>{{ticket.name}}</td>
       <td>{{ticket.ticketId}}</td>
   </tr>
 </table>

JS:

 app.filter('ticketFilter', function(){
        return function(data, tick){
            if (!tick) return data;
            var ticketItems = [];
            angular.forEach(data, function(item){
                if(item.ticketId == tick) {
                ticketItems.push(item);
              }
            });

            return ticketItems;
        };
    })

朋克:http://plnkr.co/edit/q2ixIBCm9tfUW0c2V1BC?p=preview

答案 1 :(得分:1)

使用ng-click指令:

<ul class="dropdown-menu">
    <li ng-repeat="ticket in tickets">
        <a ng-click="selected=ticket">{{ticket.ticketId}}</a>
    </li>
</ul>

然后显示selected项:

<tr>
     <th>Name</th>
     <td>{{selected.name}}</td>
</tr>

有关更多信息,请参见AngularJS ng-click Directive API Reference