#angular
#angular
Вопрос:
Я работаю над простой директивой верхнего / нижнего регистра. Поскольку я использую ControlValueAccessor, я хотел бы иметь возможность требовать директиву ngModel для того же хост-элемента, к которому я применяю свою директиву appCaseTo.
Есть ли способ сделать это в Angular?
Как потребовать наличия определенной директивы из другой директивы?
Аналогично AngularJS с require: 'ngModel'
подходом.
return {
require: 'ngModel',
link: function (scope, element, attrs, modelCtrl) {
Проект Stackblitz.
Комментарии:
1. В: Итак, вы хотите использовать синтаксис AngularJS для модели привязки AngularJS с Angular 6/7?
2. @paulsm4 Нет, я не хочу использовать тот же синтаксис. Я ищу решение, чтобы убедиться, что моя директива применяется к элементу, для которого тоже есть директива ngModel.
Ответ №1:
Я не совсем уверен, чего вы пытаетесь достичь, но вы могли бы «включить» ngModel в свой селектор, например:
selector: '[ngModel][appCaseTo]',
Комментарии:
1. Это может сработать. Однако я не хочу изменять свой селектор, только если это единственный способ убедиться, что обе директивы присутствуют.
2. Ну, селектор — это представление вашей директивы в шаблоне. С синтаксисом из моего ответа вы требуете, чтобы входной элемент также имел атрибут «ngModel» (однако он не обеспечивает, чтобы этот атрибут был ngModel из модуля Angular Forms)
3. Спасибо. Вероятно, это самое простое решение. Также я думаю, что в приложении Angular каждый раз, когда у вас есть ngModel в качестве атрибута, он будет выбираться фреймворком.