我有一个非常具体,奇怪的问题。
我们必须编写我们的应用程序以支持 IE8。我们将 Angular-Bootstrap 的 Typeahead 指令包装在模板中,以封装具有一些额外功能的查找小部件。
我们遇到的问题是我们的指令模板如下所示:
'<input ng-model="typeaheadValue" typeahead="xxx.code as formatXxx(xxx) for xxx in searchXxxs($viewValue)">'
在指令中的链接函数中,我们只是调用 replace: true 并将一些值传递给作用域。
这在 IE8 和 Chrome 中都能很好地工作。
现在,真正奇怪的是,仅对于 IE8,如果我们在使用该指令的 HTML 中说:
<input type="text" search-directive>
它永远不会进入链接功能。如果我把 type="text" 去掉,一切都会完美。
我创建了一个简单的 JSFiddle 来模仿我们正在做的一个非常基本的测试。对我来说不幸的是,JSFiddle 在 IE8 中不起作用——但这基本上就是我们正在做的事情。这可以在这里找到:http: //jsfiddle.net/lungsponge121/8xGuF/(这是我的第一个小提琴,不确定它是否可编辑)
在与它斗争了几个小时后,我发现了以下内容:如果我将 html 保留为 (input type="text") 并且我将指令模板输入元素替换为 label 或 textarea 它工作正常,但是当我使用输入时它会根本不工作。我还从模板中删除了所有的 typeahead 代码,发现在 IE8 中它仍然不起作用。IE8 控制台对我没有任何作用,只是给了我标准的非法操作。未定义的错误。
我有一个与我一起工作的人帮助我调试我的代码,现在我们想知道这是否是一个错误。有没有其他人遇到过这个问题 - 我正在考虑将这个提交给 Angular 人员,因为我不知道如何解决这个问题。