当用户输入带有md芯片的输入并且焦点被删除时,该条目仍然存在。 有没有办法在删除焦点后删除任何不是芯片的条目?移开焦点后,"站立文本"仍会显示
通常,您应该能够使用 ng-blur
来做到这一点,但由于某种原因,该指令在与 md-autocomplete
一起使用时存在问题:https://github.com/angular/material/issues/3906
但我试图以不同的方式解决它,不是最正确的方法,但它有效。您所要做的就是将事件与blur
绑定在md-autocomplete
内部的input
。在这种情况下,您必须清除 md-自动完成的搜索文本。因此,只需以某种方式在控制器中绑定该事件,如下所示:
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);
}
)
我使用超时的原因是,如果 searchText 变量清除得太快,则不会添加芯片。但是当我添加 300 毫秒延迟时,它按预期工作。当然有更好的方法可以做到这一点,但只要尝试这样做,也许这对你来说就足够了。
这是工作代码笔:http://codepen.io/anon/pen/QdNydx