2017-10-10 123 views
1

我有一個從查詢更新的輸入,但是,更新輸入字段時不會觸發(更改)事件。Angular2輸入不觸發更改事件

HTML代碼中輸入:

<input type="text" [ngModel]="inputValue" id="itemText" (ngModelChange)="setNewItem($event)"> 

功能的組件文件輸入:

setNewItem(item){ 
console.log("Triggered"); 
return this.ds.setItem(item); } 

我更新的輸入域在我的索引HTML像這樣:

<script> 
.... 
onSelect: function (request, response) { 
     var urlApi = 'http://localhost:8088/Badges/Details/' + request.item; 
        $.ajax({ 
        type: "GET", 
        url: urlApi, 
        dataType: 'json', 
        success: function(response) { 
         document.getElementById("itemText").value = response.items[0].item; } 
    }); 
} 
</script> 
+0

使用[(ngMode)l] =「inputValue」而不是[ngModel] =「inputValue」 – Chandru

+0

我沒有發現任何與你的代碼有關的問題。它應該工作。檢查控制檯是否有錯誤,這可能與此無關。 – Muthukumar

+0

這也沒有觸發事件,但是,你是對的,我應該使用2路綁定,謝謝 – TestNInja

回答

0

你不應該這樣做,

document.getElementById("itemText").value = response.items[0].item; 

,而不是嘗試直接分配值到綁定屬性(應該在組件級進行序能夠訪問到inputValue),

this.inputValue = response.items[0].item; 

,並使用2路綁定語法爲好。