- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了一个非常具体、奇怪的问题。
我们必须对我们的应用程序进行编码以支持 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/ (这是我的第一个 fiddle ,不确定它是否可编辑)
经过几个小时的斗争,我发现了以下内容:如果我将 html 保留为 (input type="text") 并用标签或文本区域替换指令模板输入元素,它工作正常,但是当我使用输入它根本不起作用。我还从模板中删除了所有的预输入代码,发现在 IE8 中它仍然不起作用。 IE8 控制台对我没有任何作用,只是给了我标准的非法操作。未定义错误。
有人和我一起工作帮助我调试我的代码,现在我们想知道这是否是一个错误。还有其他人遇到过这个问题吗?我正在考虑将其提交给 Angular 人员,因为我不知道如何解决这个问题。
最佳答案
有一件事突然引起我的注意:你的指令正在执行替换。您要替换的模板的标记没有 type="text",而原始标记有。我注意到替换会进行某种合并,当尝试合并或替换某些具有属性的 HTML 与不具有属性的模板时,可能会感到困惑。
有趣的是,您根本不需要用模板替换原始标记。这是指令的一种用途,但在我看来并不是最强大的。如果您只是想扩展预先输入,请取消“替换”并完全删除模板。例如,在我自己的项目中,我可能会在单个元素上放置几个不同的指令属性,并且它们都会向现有元素添加自己风格的额外功能。它们都引用相同的 $element,您只需小心它们不要冲突。
我在先看 fiddle 之前写了其余的内容,抱歉。
我使用的是 chromebook,所以我无法测试 IE8,但我记得 IE 对 HTML 属性非常挑剔。您是否尝试过以下任一操作:
关于使用模板中的输入替换 html 中指定类型属性的输入时,AngularJS 指令未链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16844317/
你能比较一下属性吗 我想禁用文本框“txtName”。有两种方式 使用javascript,txtName.disabled = true 使用 ASP.NET, 哪种方法更好,为什么? 最佳答案 我
Count 属性 返回一个集合或 Dictionary 对象包含的项目数。只读。 object.Count object 可以是“应用于”列表中列出的任何集合或对
CompareMode 属性 设置并返回在 Dictionary 对象中比较字符串关键字的比较模式。 object.CompareMode[ = compare] 参数
Column 属性 只读属性,返回 TextStream 文件中当前字符位置的列号。 object.Column object 通常是 TextStream 对象的名称。
AvailableSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。 object.AvailableSpace object 应为 Drive 
Attributes 属性 设置或返回文件或文件夹的属性。可读写或只读(与属性有关)。 object.Attributes [= newattributes] 参数 object
AtEndOfStream 属性 如果文件指针位于 TextStream 文件末,则返回 True;否则如果不为只读则返回 False。 object.A
AtEndOfLine 属性 TextStream 文件中,如果文件指针指向行末标记,就返回 True;否则如果不是只读则返回 False。 object.AtEn
RootFolder 属性 返回一个 Folder 对象,表示指定驱动器的根文件夹。只读。 object.RootFolder object 应为 Dr
Path 属性 返回指定文件、文件夹或驱动器的路径。 object.Path object 应为 File、Folder 或 Drive 对象的名称。 说明 对于驱动器,路径不包含根目录。
ParentFolder 属性 返回指定文件或文件夹的父文件夹。只读。 object.ParentFolder object 应为 File 或 Folder 对象的名称。 说明 以下代码
Name 属性 设置或返回指定的文件或文件夹的名称。可读写。 object.Name [= newname] 参数 object 必选项。应为 File 或&
Line 属性 只读属性,返回 TextStream 文件中的当前行号。 object.Line object 通常是 TextStream 对象的名称。 说明 文件刚
Key 属性 在 Dictionary 对象中设置 key。 object.Key(key) = newkey 参数 object 必选项。通常是 Dictionary 
Item 属性 设置或返回 Dictionary 对象中指定的 key 对应的 item,或返回集合中基于指定的 key 的&
IsRootFolder 属性 如果指定的文件夹是根文件夹,返回 True;否则返回 False。 object.IsRootFolder object 应为&n
IsReady 属性 如果指定的驱动器就绪,返回 True;否则返回 False。 object.IsReady object 应为 Drive&nbs
FreeSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。只读。 object.FreeSpace object 应为 Drive 对象的名称。
FileSystem 属性 返回指定的驱动器使用的文件系统的类型。 object.FileSystem object 应为 Drive 对象的名称。 说明 可
Files 属性 返回由指定文件夹中所有 File 对象(包括隐藏文件和系统文件)组成的 Files 集合。 object.Files object&n
我是一名优秀的程序员,十分优秀!