Мне нужно передать два значения из двух разных выпадающих списков в мой сервис. И я хотел бы сделать это по нажатию на кнопку. Поэтому я написал такой компонент:
import { Component, Input, OnInit } from '@angular/core';
import { CategoryType } from '../models/category-type.enum';
import { CountryType } from '../models/country-type.enum';
import { NewsServiceService } from '../services/news-service.service';
@Component({
selector: 'app-dropdown',
template:
`
<div>
<select [(ngModel)]="catSelected" (ngModelChange) = "onClick($event)" >
<option *ngFor = "let type of CategoryType.values()" [ngValue] = 'type'>
{{type}}
</option>
</select>
<br>
<select [(ngModel)]="couSelected" (ngModelChange) = "onClick($event)" >
<option *ngFor = "let type of CountryType.values()" [ngValue] = 'type'>
{{type}}
</option>
</select>
<br>
<button ng-click="onClick()">Click to get news</button>
</div>
`
})
export class DropdownComponent implements OnInit {
CategoryType = CategoryType;
CountryType = CountryType;
title: string;
couSelected: string;
catSelected: string;
constructor(private newsService: NewsServiceService) {
}
ngOnInit() {
this.catSelected = 'Select_Category';
this.couSelected = 'Select_Country';
}
onClick(catSelected: string, couSelected: string) {
this.newsService.getNews(catSelected, couSelected).subscribe(
data => {
this.catSelected = data;
}
);
}
}
Как я уже писал, у меня есть два раскрывающихся списка со значениями CategoryType
CountryType
и одна кнопка для отправки клика.
Каждое изменение в выпадающем списке делает ngModelChange и отправляет только одно значение моим службам. Я хочу достичь:
Выберите значение из CategoryType
Выберите значение из CountryType
Затем нажмите кнопку и передайте значения CategoryType и CountryType моему сервису.
Сейчас передается только одно значение, и я не знаю почему.
onClick
функция вообще не работает.