Массив против одного объекта - AngularJS / Javascript (Basic) - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть очень простой массив

[
  {
    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 голосов
/ 03 декабря 2018

Используйте директиву 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 API Directive APIСсылка .

0 голосов
/ 03 декабря 2018

Вы можете использовать к этому 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...