Я сейчас обновляюсь с AngularJS 1.4.7 до 1.7.5. Ранее мы использовали странный хак для создания объекта фильтра внутри директивы.
<directive field="'key1=value1, key2=value2'"></directive>
Этот атрибут (поле) затем используется в угловом шаблоне для директивы
<template attr="item in list | filter: { {{field}} }"></template>
Ранее в 1.4.7 это брало строку в field
и затем подставляло ее во второй шаблон, в результате чего соответствующий объект передавался в угловой фильтр:
<template attr="item in list | filter: { key1=value1, key2=value2 }"></template>
Однако в 1.7.5 это больше не работает и теперь приводит к синтаксической ошибке. Есть ли новый способ сделать это? Есть ли лучший способ сделать этот тип генерации фильтра?
Для случая, когда мы фильтруем только одну пару ключ / значение, следующее работает :
<directive field="'key1'"></directive>
<template attr="item in list | filter: { [field]:value }"></template>
что дает нам
<template attr="item in list | filter: { key1:value }"></template>