Спасибо @ Вэнь Хао Ву, я наконец решил это с помощью множества хаков, не уверен, что есть лучший подход.
Вот что я сделал.
import { Component, OnInit, Input } from '@angular/core';
import { FormGroup, FormControl, FormBuilder } from '@angular/forms';
import {Router} from '@angular/router';
declare var $, Pikaday: any;
@Component({
selector: 'app-search-main',
templateUrl: './search-main.component.html',
styleUrls: ['./search-main.component.css']
})
export class SearchMainComponent implements OnInit {
searchForm = null;
constructor(private router: Router, private _fb: FormBuilder) {}
ngOnInit() {
this.buildForm();
$(document).ready(function(){
var selectric = $('select').selectric();
selectric.on('change', function(e) {
this.searchForm.get('venue').setValue($("#venue option:selected").val());
this.searchForm.get('meeting').setValue($("#meeting option:selected").val());
}.bind(this));
}.bind(this));
}
buildForm() {
this.searchForm = this._fb.group({
venue: ['',[]],
meeting: ['',[]],
keyword: ['',[]],
duration: ['',[]],
start_date: ['',[]],
end_date: ['',[]],
start_time: ['',[]],
arrangement: ['',[]],
guest: ['',[]],
setup_style: ['',[]]
});
}
onSubmit() {
this.router.navigate(['/search-result'], { queryParams: this.searchForm.value });
return false;
}
}