【问题标题】:CSS Styles not rendering for Angular View in IE8CSS 样式不为 IE8 中的 Angular 视图呈现
【发布时间】:2014-03-26 18:11:53
【问题描述】:

我有一个 Angular 应用程序,除了在 IE8 中运行良好。本质上,外部样式表中的样式不会对在我的视图中呈现的代码生效。我遵循了 Angular IE 指南。这是我的 html 元素上的代码:

<!--[if IE 8]>         
<html class="no-js lt-ie9" xmlns:ng='http://angularjs.org' id='ng-app' ng-app='HPApp' ng-controller='HPMainController' ng-init='loadHP()'> 
<![endif]-->

稍后我会渲染一个特定于 IE 的样式表,否则我会使用数据绑定来渲染一个特定于 URL 的样式表

<!--[if IE 8]>
<link rel="stylesheet" href="css/ie.css">
<![endif]-->
<!--[if gt IE 8]><!-->
<link rel="stylesheet" ng-href="css/{{cssPath}}">
<!--<![endif]-->

稍后在我的 html 正文中,我有一个带有 ng-view 属性的 div

<div ng-view></div>

如果我在模板中删除带有 ng-view 和硬编码的 div,我的样式就会生效。否则,我的样式似乎会在模板呈现之前应用于页面。

另外,请注意,如果我在我的 IE 特定样式表上使用 ng-href 属性,IE 根本不会加载它。

【问题讨论】:

  • 在让 IE8 和 AngularJS 运行良好方面做了一些工作,我至少可以建议 IE8 对格式不正确的 HTML 更有气质,尤其是在与嵌套模板(如 ng-view)结合使用时或其他方法。我遇到过一些非常奇怪的事情仅在 IE8 中不起作用的情况,只是为了最终弄清楚这是因为我犯了一个 html 错误(未关闭的标签、自关闭一个不允许自关闭的标签等)跨度>
  • 我不得不对所有模板和 IE8 使用 $.trim
  • @Rich 您是否尝试过 ng-view onload 属性?你认为在模板渲染后可以以某种方式重新加载我的 CSS 吗?
  • 对不起,我没有,由于特定要求,我的模板有点不同。尽管我所说的更多的是,如果这种情况与我的问题相似,则不需要重新加载 CSS,而是某些格式错误的 HTML 会阻止正确应用已加载的 CSS。搜索还会显示此 stackoverflow.com/questions/20556102/… 。这提醒我我必须在 IE8 中包含 html5shiv 以支持 HTML5 标签。

标签: javascript css angularjs ng-view ngroute


【解决方案1】:

你添加了吗

document.createElement('ng-view');

到您的索引文件?

angular doc p.4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多