2017-07-07 45 views
0

這是非常簡單的事情,我需要做的是將一個變量或其他東西傳遞給我的方法。 這段代碼的問題是當onPickupClock被觸發,打開第一個組件,即<md-select name="price">,而不是組件本身觸發器從選擇錨點

我的問題是: 我怎樣才能將其設置爲打開組件本身,<md-select name="clocktime">

這是angular material select doc,如果你想看看

home.component.ts

import { MdSelect } from '@angular/material'; 

@Component({ 
.... 
}) 

export class HomeComponent { 

    @ViewChild(MdSelect) dp: MdSelect; 

    onPickupClock(e) { 
    this.dp.toggle(e); 
    } 
} 

home.component.html

<md-select [(ngModel)]="selectedPrice" floatPlaceholder="never" name="price"> 
    <md-option *ngFor="let price of prices" [value]="price.value"> 
    {{price.viewValue}} 
    </md-option> 
</md-select> 
... 
<div> 
<a (click)="onPickupClock()"> 
    <img src="/assets/home/xxx.png"> 
</a> 
</div> 

<md-select [(ngModel)]="selectedClockPickup" floatPlaceholder="never" name="clocktime"> 

    <md-option *ngFor="let clocktime of clocktimes [value]="clocktime.value"> 
    {{clocktime.viewValue}} 
    </md-option> 

</md-select> 
+0

當你從'MD-選擇name =「clocktime」'點擊你想選擇的值的聯繫? – cgatian

+0

是的,我得到一個MouseEvent對象和srcElement是我點擊的img –

回答

1

選項# 1U SE ViewChild性能

與模板引用變量

<md-select #priceSelect> 
</md-select> 

<md-select #clockTimeSelect> 
</md-select> 

更新home.component.ts定義你的選擇和創建組件上的兩個ViewChild屬性。

@ViewChild('priceSelect') priceSelect: MdSelect; 
    @ViewChild('clockTimeSelect') clockTimeSelect: MdSelect; 

注意ViewChild裝飾器的選擇器是模板中使用的模板引用變量。這使您可以直接訪問組件。

onPickupClock() { 
    this.clockTimeSelect.toggle(); 
    } 

選項#2通參考模板直接調用函數

傳遞模板參考變量點擊事件。

首先給你的md-select本地模板變量的名字,叫做#clockTimeSelect

<md-select #clockTimeSelect [(ngModel)]="selectedClockPickup" floatPlaceholder="never" name="clocktime"> 
    <md-option *ngFor="let clocktime of clocktimes [value]="clocktime.value"> 
    {{clocktime.viewValue}} 
    </md-option> 
</md-select> 

然後更新您的點擊通過模板引用變量。

<a (click)="onPickupClock(clockTimeSelect)"> 
    <img src="/assets/home/xxx.png"> 
</a> 

更新組件功能接收MdSelect

onPickupClock(mdSelect: MdSelect) { 
    mdSelect.toggle(); 
} 
+0

Aaaaamazing !! ...它不只是工作,它有助於我更多地瞭解它... ...我有太多的東西學習gosh ......我也想問你一些問題......如果你在指令部分去https://material.angular.io/components/select/api讓我們假設你想使用選定的屬性你會如何使用?我想在,但你如何設置?會像?我只想了解如何使用API​​以及如何使用@Input()@output()..這些屬性..謝謝你的一切 –

+0

我相信你只需要將'md-select'與ng-Model綁定,就可以根據組件中的值設置選項的值。確保你接受答案 – cgatian