IE中的AngularJS错误,风格与ng风格

Luk*_*uke 5 javascript css internet-explorer angularjs microsoft-edge

我正在使用Angular JS v1.1.5,并发现了一个有趣的IE相关问题.

在IE 9,10,11和Edge中,以下似乎不起作用,即使它在Chrome中运行良好:

<div style="width: {{progress.percent()}}%;"></div>
Run Code Online (Sandbox Code Playgroud)

虽然这适用于所有浏览器:

<div ng-style="{width: progress.percent() + '%'}"></div>
Run Code Online (Sandbox Code Playgroud)

我很好奇为什么第一个选项在IE/Edge中不起作用.这有什么已知的错误吗?

Pan*_*kar 10

当IE 9和10尝试呈现该HTML时,它基本上删除了要在HTML上解析的无效HTML.

因此,将其style="display: {{'block'}}"视为无效的html,因为它具有未知的{{}}语法并且使该属性呈现为style=""


除了ng-style那里你可以使用ng-attr-*如下指令

<div ng-attr-style="{{'width: '+ progress.percent() +'%;'}}"></div>
Run Code Online (Sandbox Code Playgroud)

progress.percent()值发生变化时,它将创建样式属性.

有关更多信息,请查看此旧的已记录的github问题

style属性如何变成""?

  • 这种使用ng-attr-style和字符串连接的方法将我的屁股保存在IE11中。谢谢你,先生! (2认同)