Angular: однократное связывание, перекомпиляция вложенного ng-повторения

0

Я использую одноразовую привязку и kcd-recompile, но имею проблему с вложенным ng-repeat. Предположим, что код выглядит следующим образом:

<div ng-repeat="person in ::people">
    <div ng-repeat="friend in ::person.friends" kcd-recompile="person.friends">
        {{friend.name}}
    </div>
</div>

Если я добавлю друга к одному из людей сейчас, я хочу, чтобы этот человек div был перекомпилирован без повторной компиляции других людей. Проблема в том, что person.friends обновляется только в том случае, если person обновляется.

Поэтому он работает, если я добавляю kcd-recompile к первому ng-repeat, но затем каждый человек div перекомпилируется (что я хочу предотвратить).

Есть ли возможность обновить person без перекомпиляции всего первого ng-repeat?

Теги:

1 ответ

0
Лучший ответ

Нашел решение самостоятельно (в нерабочее время), если кому-то это нужно:

Используя people[$index].friends вместо person.friends, это работает!

<div ng-repeat="person in ::people"> <div ng-repeat="friend in people[$index].friends" kcd-recompile="person.friends"> {{friend.name}} </div> </div>

  • 0
    обратите внимание, что в вашем посте есть ::person но здесь просто people[$index].friends , поэтому, возможно, <div ng-repeat="friend in person.friends" также работает
  • 0
    Нет, с person.friends это не сработало.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню