2017-04-14 93 views
0

在HTML我有這樣的:如何找出變量值是否已經改變? (angularJS)

<input id="Search" type="text" placeholder="Search Images.." ng-model="data" 
     ng-keypress="($event.charCode==13)? searchMore() : return"> 

這基本上是其用作搜索輸入域。

在控制器我剛收到這是傳遞給輸入值:$scope.data

我想確定莫名其妙當檢索詞已經改變了,這樣我可以消滅的結果數組,如果它沒有,或者只是更多的結果追加相同的搜索字詞來了。

如何確定$scope.data現在包含不同的字符串?如果我將這樣設置:

$scope.savedData = $scope.data 

這個新變量將隨着新數據一直覆蓋。

回答

2

ng-change是一個簡單的方法

<input id="Search" 
     type="text" 
     placeholder="Search Images.." 
     ng-model="data" 
     ng-change="clearResults()" 
     ng-keypress="($event.charCode==13)? searchMore() : return"> 
+0

NG-變化觸發每次擊鍵的,我只是在按鍵(輸入)做一個API調用。在每次擊鍵時做API調用可能不是最好的方法。 – funguy

+0

然後解釋預期的行爲並不明確 – charlietfl

+1

@funguy您可以在'ng-model-options'中使用'debounce',例如在用戶完成輸入時使用'ng-model-options:{debounce:1000}'將會等待1000毫秒,然後更新模型並獲取數據。當然,它應該按照原樣進行。它取決於你如何實現'clearResults' - 它可以是簡單的布爾標誌,不需要調用它自己。爲了打電話你有'searchMore' –