我正在寫一個指令包裝器圍繞一個typeahead輸入。該指令用於監聽鏈接上的更改並獲取預先輸入的新數據+選項。AngularJS typeahead情緒不是最新的
我可以簡單地用$超時模擬這種行爲,並在this plnkr.co中演示它。
JS
app.controller('sample', function($scope, $timeout) {
$scope.options = ['1800', '1900', '2100'];
// Simulate some latency
$timeout(function() {
$scope.options.push('1850');
}, 4000);
});
HTML
<div>
<input type="text" ng-model="optionValue" typeahead="opt for opt in options | filter:$viewValue">
</div>
如果你開始鍵入它顯示1800預期的輸入域 '18'。但是,當1850年獲得的時間增加後,typeahead的可選選項不會被更新。
- FYI我活生生的指令看起來像這樣 -
$scope.$watch($interpolate(url), function (newUrl) {
$http.get(newUrl).then(function (response) {
$scope.options = response;
});
});
我試圖用typeahead="opt for opt in getData()"
但這並不工作,因爲插入值還沒有最新的。它總是落後於一個價值。
謝謝您的回答,我設法在角ui.js添加一個醜陋的修復來解決該問題。在我發佈之前,我會等待更好的答案。我的解決方案只是增加了一個手錶,如果它發生變化 - >更新popup – Dieterg 2014-11-24 14:45:15
@DieterGoetelen認爲將問題發佈到圖書館的GitHub網站(甚至創建拉請求)會更有幫助,並討論你的解決方案。 – hon2a 2014-11-24 15:30:42
它被張貼爲gihub頁面上的錯誤。 – Dieterg 2014-11-24 16:07:08