#angularjs #transclusion #angular-directive
#angularjs #преобразование #angular-директива
Вопрос:
Я разрабатываю простую директиву редактирования на месте. Моя цель — использовать содержимое директивы (форму) в качестве шаблона и изменить поля ввода на метки. При нажатии на форму директива должна заменить ее на исходное содержимое редактора.
Я создал plunk. Проверьте это ЗДЕСЬ .
В первый раз она связывает свои данные, но в дальнейшем не связывает их.
Мои вопросы: Что не так с моей концепцией? Как это можно исправить, чтобы соответствовать ожидаемому поведению?
Любая помощь или комментарий приветствуются. Я здесь совсем застрял. Спасибо.
Комментарии:
1. Я ссылался на неправильную версию plunk. Отредактировано.
Ответ №1:
Вы должны использовать ng-click в своей директиве вместо непосредственного использования обработчика событий onclick таким образом, все ваши изменения остаются в цикле событий angular, поэтому выполняется
template: '<div class="readonly-item" ng-transclude ng-click="switchForm()"></div>',
и удаление вашего назначения обработчика onclick enevet
вы получаете это
http://plnkr.co/edit/C7xpmOxEOpwuAMB1mNpI?p=preview
вы также можете получить тот же результат, просто добавив
scope.$apply()
в конце вашей функции переключения мне это не нравится, потому что вы заставляете angular быть в курсе операции, в то время как в этом нет необходимости. но я тоже работаю
Комментарии:
1. Спасибо 🙂 Это было все. Я думал, что что-то пропустил.