0

Я использую угловой 2. У меня есть сценарий, в котором у меня есть компонент, интерфейс и директива.прослушивание модели в угловом компоненте 2

Эта директива используется для самовнушения, и мой интерфейс используется в качестве модели.

Так что всякий раз, когда пользователь выбирает значение, я обновляю модель, и есть способ, которым мой компонент будет слушать изменения модели.

directive - model - component interaction

как будет компонент слушать изменения модели, которые я делаю через директиву? также Можно ли использовать модель для хранения данных?

+0

как будет компонент прислушайтесь к изменения модели, которые я делаю через директиву? также Можно ли использовать модель для хранения данных? – Anuteja

+0

Вы должны обновить вопрос вопросом, это будет лучше, чем сказать это в комментарии. – acdcjunior

ответ

0

Используйте входы, выходы и связующие, как:

(на самом деле не автоматический полный, но он должен получить вы начали)

@Component({ 
    selector: 'auto-complete', 
    template: ` 
    <select [(ngModel)]="value" (ngModelChange)="valueChange.emit($event)"> 
    <option *ngFor="#val of values" [value]="val">{{val}}</option> 
    </select>`}) 
export class AutoCompleteComponent { 
    @Input() values:string[]; 
    @Output() valueChange:EventEmitter<string> = new EventEmitter<string>(); 
    value:string; 
} 
@Component({ 
    selector: 'parent', 
    directives: [AutoCompleteComponent], 
    template: ` 
<auto-complete [value]="options" (valueChange)="onUpdate($event)"></auto-complete> 
`}) 
export class AppComponent { 
    options = ['a', 'b', 'c', 'd', 'e']; 
    onUpdate(event) { 
    console.log(event); 
    } 
} 
+0

есть способ, которым я могу прослушивать событие, которое не было в шаблоне, но в моем компоненте? – Anuteja

+0

Возможно, есть способ, но вы не должны. '@Output()' следует использовать только для связывания с помощью '(outputName) =" ... "'. Могут быть другие способы. Какую проблему ты пытаешься решить? –

+0

Я создал директиву для select2 (используется для автозаполнения) базовую версию, просто вызывающую select2 на элементе. Эта директива используется в моем приложении несколько раз. Я хочу вызвать событие, когда пользователь выбирает что-либо. Это событие должно быть прослушано компонентом. И эта директива может содержать несколько компонентов. Итак, есть ли способ, которым я могу иметь отдельное событие для каждого экземпляра, который я использовал в приложении? – Anuteja

Смежные вопросы