将附加到正文与路由结合使用时,预输入显示卡在正文上。
typeahead-append-to-body="true"
我使用了 Angular 种子项目和一个简单的 Typeahead 示例并复制了问题: http: //plnkr.co/WSNIRKLqOCLqO87jp3an
- 加载页面
- 选择“视图2”
- 选择“视图1”
- 在输入中键入字母字符“a”
- 观察附在机身上的预输入显示器
- 选择视图2
- 观察显示器仍然附着在机身上
我尝试过的所有浏览器都会出现问题。
我看到单击绑定到文档触发但如果页面之前已被路由到,则不会调用dismissClickHandler。这意味着它第一次运行良好,但是当您返回之前访问过的页面时,它永远不会触发dismissClickHandler。
https://github.com/angular-ui/bootstrap/blob/master/src/typeahead/typeahead.js
// Keep reference to click handler to unbind it.
var dismissClickHandler = function (evt) {
if (element[0] !== evt.target) {
resetMatches();
scope.$digest();
}
};
$document.bind('click', dismissClickHandler);
originalScope.$on('$destroy', function(){
$document.unbind('click', dismissClickHandler);
});
var $popup = $compile(popUpEl)(scope);
if ( appendToBody ) {
$document.find('body').append($popup);
} else {
element.after($popup);
}
有什么想法吗?