Интерполировать одноразовую привязку вручную - PullRequest
1 голос
/ 14 января 2020

Как я могу интерполировать одноразовую привязку вручную?

Вот мой пример использования. У меня есть список из множества элементов. Элементы просто наборы элементов управления. Я получаю данные для элементов от BE. Затем я хотел бы использовать интерполяцию AngularJS и установить значения элементов управления. Но я бы хотел избежать интерполяции всех элементов каждый раз, когда меняю только один элемент управления.

Итак, я использую одноразовую привязку для установки значений, но затем, когда я изменяю их, они не updated.

Ожидаемый результат в примере состоит в том, что как только что-то введено в элемент управления, обновляется соответствующее одноразовое связанное значение. Кроме того, единовременное связывание должно оставаться там, поскольку в моем реальном случае будет много элементов управления, и я не хочу снижать производительность, когда взаимодействует только один элемент управления. Мой упрощенный пример можно найти здесь (в моем реальном случае у меня есть не только входные данные, но и флажки, но я считаю, что подход должен быть одинаковым для них).

После исследования я выяснил, что в этом случае следует использовать директиву. Но я не смог найти простой для понимания пример. Итак, кто-то может опубликовать это здесь, пожалуйста?

В отличие от директивы, здесь также приветствуются решения.

1 Ответ

1 голос
/ 15 января 2020

Сначала поймите вашу проблему: Почему вы хотите избежать обнаружения изменений angular здесь? Единственная причина, которая приходит мне в голову, это серьезные проблемы с производительностью.

В одном случае здесь было одна или две тысячи входов, все с привязкой. Приложение было немного медлительным sh, но все еще работало. Мы приняли это, так как в противном случае нам пришлось заново реализовать всю привязку вручную.

Если ваша привязка довольно проста (без проверок, преобразований и т. Д. c.) И значения не отображаются в других местах во время редактирования, возможно, вы могли бы использовать директиву AngularJS для собственного элемента ввода HTML, который просто прослушивает событие onChange для сохранения измененных данных и обновляется программно всякий раз, когда вы знаете он изменился извне (если он вообще изменился).

(не говоря уже о том, чтобы лучше использовать Angular, который имеет гораздо более жесткий контроль при обнаружении изменений ;-)).

...