我正在写一个指令包装器围绕一个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