2016-10-17 41 views
1

我正在學習Angular 2.我試圖使用(更改)事件來實現自動保存功能。像這樣Angular2:當頁面加載時阻止更改函數調用

<div> 
    <md-input class="ctrl" [(ngModel)]="first" (blur)="saveItemInfo()"></md-input> 
</div> 
<div> 
    <md2-autocomplete [items]="items" item-text="name" item-value="value" [(ngModel)]="second" [disabled]="disabled" 
     (change)="saveItemInfo()"> 
    </md2-autocomplete> 
</div> 
<div> 
    <md-slide-toggle [(ngModel)]="third" color="primary" (change)="saveItemInfo()"></md-slide-toggle> 
</div> 

問題是,即使頁面加載時,change事件也會觸發。所以它正在做這麼多的API調用。任何其他方式來做到這一點?

+0

在'saveItemInfo'中執行檢查以查看是否有任何實際更改。 – Chrillewoodz

+0

嘗試將'(change)'改爲'(keyup)'並檢查它是否適用於您。 – micronyks

+0

@micronyks,(密碼)不適用於** md2-autocomplete **。發生更改時不會觸發事件。 – NNR

回答

1

你可以保持一個私有變量像_second和每(change)事件檢查如果有什麼改變:

  • 如果是,私有變量設置爲新值並調用您的API方法。
  • 如果不是,則什麼也不做