【发布时间】:2017-01-06 16:00:54
【问题描述】:
当用户使用 md-chips 输入输入并移除焦点时,输入仍然存在。一旦焦点被移除,有没有办法删除任何不是芯片的条目? The Out Standing Text still shows once the focus is removed
【问题讨论】:
标签: angular-material md-autocomplete md-chip
当用户使用 md-chips 输入输入并移除焦点时,输入仍然存在。一旦焦点被移除,有没有办法删除任何不是芯片的条目? The Out Standing Text still shows once the focus is removed
【问题讨论】:
标签: angular-material md-autocomplete md-chip
通常,您应该可以通过使用 ng-blur 来做到这一点,但由于某种原因,与 md-autocomplete 一起使用的指令存在问题:https://github.com/angular/material/issues/3906
但我试图以不同的方式解决它,不是最正确的方法,但它确实有效。您需要做的是在input 中的md-autocomplete 中使用blur 绑定事件。在这种情况下,您必须清除 md-autocomplete 的 searchText。因此,只需以某种方式将该事件绑定到您的控制器中:
angular.element(document.querySelector('md-autocomplete input')).bind('blur',
function(){
setTimeout(function(){
angular.element(document.querySelector('md-autocomplete')).scope().ctrl.searchText = '';
angular.element(document.querySelector('md-autocomplete')).scope().$apply();
}, 300);
}
)
我之所以使用 timeout 是因为如果 searchText 变量被清除得太快,则没有添加芯片。但是当我添加 300 毫秒延迟时,它按我的预期工作。当然有更好的方法可以做到,但只要尝试这样做,也许对你来说就足够了。
这里是工作代码笔:http://codepen.io/anon/pen/QdNydx
【讨论】: