Passe a expressão ng-repeat para a função ng-click
-
20-12-2019 - |
Pergunta
O modelo html contém uma lista de itens filtrados
<ul class="gift_info">
<li ng-repeat="code in codes | filter:{id_id:detail.id}">{{code.discount}}</li>
</ul>
Abaixo desta lista há um botão com código como
<button type="button" ng-click="add_something(repeat_expression_needed)">Add more</button>
O objetivo é alimentar os itens do ng-repeat acima para funcionar abaixo como um parâmetro (coleção, array, qualquer que seja).Isso é possível por meio de meras diretivas de modelo ou é necessário envolver alguns truques do controlador?
Solução
O código usando o método que @Jonathan apontou
<ul class="gift_info">
<li ng-repeat="code in (filteredCodes = (codes | filter: {id_id:detail.id})">{{code.discount}}</li>
</ul>
e então
<button type="button" ng-click="add_something(filteredCodes)">Add more</button>
Outras dicas
Você pode usar uma expressão dentro do ng-repeat para atribuir uma variável que conterá a coleção e estará disponível dentro do escopo.
Ver resposta:Como posso obter a matriz de resultados de uma expressão angular "| filter" em uma variável?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow