当用户输入带有md-chips的输入并且焦点被移除时,该条目仍然存在。一旦焦点被删除,有没有办法删除任何不是芯片的条目? The Out Standing Text still shows once the focus is removed
答案 0 :(得分:1)
通常,您应该可以使用ng-blur
来执行此操作但由于某些原因,该指令与md-autocomplete
一起使用时出现问题:https://github.com/angular/material/issues/3906
但是我尝试以不同的方式解决它,而不是最正确的方式,但它有效。您需要做的是将事件与blur
input
内的md-autocomplete
绑定。在这种情况下,您必须清除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);
}
)
我使用超时的原因是,如果searchText变量被清除太快,则不会添加芯片。但是,当我添加300毫秒延迟时,它按预期工作。肯定有更好的方法可以做到这一点,但只是尝试这样做,也许这对你来说已经足够了。