Angular 无法在 IE 8 中工作,无法为我的指令创建自定义元素

2024-01-05

在过去的几周里,我从头开始构建了我的应用程序。 我在执行说明时做到了here http://docs.angularjs.org/guide/ie.

我不得不说,在任何普通浏览器(例如 Mozilla 或 Chrome)上一切都很好,而且 Angular.js 框架对我很有用。

问题是,对于 IE8,一切似乎都被破坏了,而 document.createElement 当我尝试为我的custome指令创建一个元素时,DOM对象抛出一个错误(我也使用'x-'前缀,按照btowser这个蹩脚借口的要求)。

A screen shot: Errros from the explorer development console

应用索引:

<!DOCTYPE html>
<html xmlns:ng="http://angularjs.org" xmlns:x-restrict="" xmlns:x-fileupload="" class="ng-app" ng-app="myApp" ng-controller="homeCtrl">
    <link rel="stylesheet" type="text/css" href="css/foundation.css">
    <link rel="stylesheet" type="text/css" href="css/form.css">
    <link rel="stylesheet" type="text/css" href="css/meta.css">
    <!--[if lte IE 8]>
          <script src="js/json3.min.js"></script>
        <script>

        document.createElement('ng-include');
        document.createElement('ng-pluralize');
        document.createElement('ng-view');
        document.createElement('x-restrict');
        document.createElement('x-fileupload');
        // Optionally these for CSS
        document.createElement('ng:include');
        document.createElement('ng:pluralize');
        document.createElement('ng:view');
      </script>
    <![endif]-->
    <title>{{model.title}}</title>
  </head>
  <body>
  <div class="errorBar" ng-show="model.error.visible"><div class="errorBarContent">{{model.error.message}}</div></div>
  <div ng-include src="layout.menuSrc"></div>
    <div class="colmask threecol">
      <div class="colmid">
        <div class="colleft">
          <div class="col1">
            <ng-view></ng-view>
          </div>
          <div class="col2">
            <div ng-include src="layout.leftSideBarSrc"></div>
          </div>
          <div class="col3">
            <div ng-include src="layout.rightSideBarSrc"></div>
          </div>
        </div>
      </div>
     </div> 
<!--<div id="mainFrame">
      </div> -->

      <div ng-include src="layout.footerSrc" id="footer"></div>
    </div>
    <!-- TODO: REMOVE THE CDN JQUERY AND REPLACE IT WITH ONE THAT IS LOCATED WITHIN THE PROJECT -->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="lib/angular/angular.js"></script>
    <script src="lib/angular/angular-resource.js"></script>
        <script src="js/app.js"></script>
    <script src="js/services.js"></script>
    <script src="js/controllers.js"></script>
    <script src="js/filters.js"></script>
    <script src="js/directives.js"></script>
    <script src="lib/bluimp/js/vendor/jquery.ui.widget.js"></script>
    <script src="lib/bluimp/js/jquery.iframe-transport.js"></script>
     <script src="lib/bluimp/js/jquery.fileupload.js"></script>

    </script>

</body>
</html>

指示:

angular.module('myApp.directives', []).
directive('x-restrict', function(authService){
    return{
        restrict: 'A',
        prioriry: 100000,
        scope: false,
        link: function(){
            // alert('ergo sum!');
        },
        compile:  function(element, attr, linker){
            var accessDenied = true;
            var user = authService.getUser();
            var attributes = attr.access.split(" ");
            for(var i in attributes){
                if(user.role == attributes[i]){
                    accessDenied = false;
                }
            }


            if(accessDenied){
                element.children().remove();
                element.remove();           
            }

        }
    }
});

你应该读一下这个有关在 IE8 及更早版本中使用 Angular 的文章 http://docs.angularjs.org/guide/ie。您需要了解一些技巧。每当我使用 Angular 来定位 IE8 时,我都会避免编写元素指令,而坚持使用属性指令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 无法在 IE 8 中工作,无法为我的指令创建自定义元素 的相关文章

随机推荐

  • 使用 Babel 实现 GAE webapp 应用程序国际化

    您将如何使用 Google App Engine Web 应用程序国际化BABEL http babel edgewall org 我在这里寻找所有阶段 标记要翻译的字符串 提取它们 翻译 配置您的应用程序以加载浏览器请求的正确语言 1 在
  • Cordova/Phonegap Google 地图插件上标记图标的本地图像

    是否可以使用设备本地存储的图像作为标记图标 我可以使用 URL 并且它可以工作 但是当我尝试使用本地图像时 它不会加载 我应该如何引用图像 这是一个多平台应用程序 因此我无法使用 Android 等设备特定路径file android as
  • 获取span的内容

    如何获取 span 的内容 我正在寻找一种方法让所有这些都变得简单 而不是 jQuery javascript 和一点 jQuery var swear words arr new Array bad evil freak var rege
  • 用户与当前数据匹配

    我有一个包含两种不同类型的用户 导师和学员 的数据库 我希望第二组 学员 能够 搜索 第一组 导师 中与其个人资料匹配的人 导师和学员都可以随时进入并更改其个人资料中的项目 目前 我使用 Apache Mahout 进行用户匹配 recom
  • Guzzle http 的 Laravel 中的错误日志记录被截断

    Guzzle http 正在截断超过 120 个字符的异常 但我需要记录完整的异常消息 我怎样才能做到这一点 我正在使用 laravel 4 2 22 try whatever catch GuzzleHttp Exception Requ
  • 测试浏览器是否支持多个文件上传?

    有没有办法测试给定的浏览器是否支持multiple文件上传元素上的属性 服务器端或客户端实现就足够了 我确实意识到我可以针对支持该功能的已知浏览器列表来测试用户代理 但这似乎是一个相当脆弱的实现 即 如果 IE 10 在最终启动时支持该功能
  • 更改 Angular 2 的 Material 设计主题

    我正在尝试使用角材料2 https github com angular material2与我的 Angular 2 应用程序 我没有找到如何全局更改材质主题 primaryColor ETC 我知道 Angular Material 2
  • XElement Add 函数将 xmlns="" 添加到 XElement

    我有一个为列表对象生成 xml 的函数 public XDocument ToXML foreach var row in this var xml row ToXml template Root Add xml return templa
  • 我的角度中特定页面的标题隐藏

    我正在研究角度项目 我的需要是仅在登录页面上隐藏标题块 我试图隐藏登录页面上的标题 但它对我来说仍然不起作用 你能帮我在登录状态下隐藏它吗 这是我的索引 html div src div div class div div div 这是我的
  • 如何在不删除子元素的情况下删除包装器(父元素)?

    我想删除父级而不删除子级 这可能吗 HTML 结构 div class wrapper img div div class button Remove wrapper div 单击按钮后我想要 img div class button Re
  • 从连续数据流播放音频 (iOS)

    整个早上我都在为这个问题苦苦思索 我已经设置了与返回音频数据的数据源的连接 它是一个录音设备 因此数据没有设定长度 数据只是流入 就像 如果您要打开一个到收音机的流 我已经成功地接收了我的代码中的所有数据包 现在我只需要玩它 我想播放传入的
  • 按降序对 int 数组进行排序会给出“方法不适用于参数”

    我正在尝试使用以下代码在 Java 中按降序对数组进行排序 for int i 0 i lt arr length i Comparator comparator Collections reverseOrder Arrays sort a
  • 用于数据库表的 Rails 3 I18n

    我正在寻找一些有关使用国际化最佳实践的提示和建议 我四处搜寻 但我对所读到的内容并不满意 我读过的大多数文章都集中在使用 yml 文件进行国际化 这在我的情况下不起作用 我目前有几个带有英文文本的数据库表 其中一些表格的文本字段只有几句话长
  • 大数组上的 Python MemoryError

    这是我尝试运行的 python 脚本 n 50000000000 50 billion b 0 n for x in range 0 n b x random randint 1 899999 但我得到的输出是 E python gt py
  • Android - POST 到 RESTful Web 服务

    我正在寻找有关如何将数据发布到 Android 应用程序中的 Web 服务的一些指导 不幸的是 这是一个学校项目 所以我无法使用外部库 Web 服务有一个基本 URL 例如 http example com service create 并
  • LocationManager.removeUpdates(listener) 不删除位置侦听器

    我的应用场景是我想跟踪员工的位置 我有一个广播接收器 它监听设备启动广播并注册警报管理器 当警报管理器勾选时 它会注册两个位置侦听器 一个用于侦听 GPS 另一个用于侦听网络 我希望当我在 onLocationChange 方法中获得第一次
  • 如何为Azure数据工厂链接服务中的azure表存储/blob存储动态提供连接字符串

    动态更改 Azure 数据工厂中表存储或 Blob 存储的连接字符串 目前 我可以看到数据库相关数据集的此类选项吗 如何在表或 Blob 存储中实现相同的效果 我相信这就是你想要的 https learn microsoft com en
  • 如何禁用 ionic 4 中的侧边菜单?

    我在用 this menuCtrl swipeEnable false 对于 ionic 3 应用程序 这对于禁用侧面菜单效果很好 但是 它不适用于 ionic 4 下面是我的 ionic 4 代码示例 登录 page ts constru
  • 使用模数时除以零误差

    模运算符应该显示余数 像echo 34 100 输出34 但为什么我会得到一个 Division by zero 此代码的错误echo 34 4294967296 4294967296 is 2 32并且不能表示为 32 位数字 它会回绕到
  • Angular 无法在 IE 8 中工作,无法为我的指令创建自定义元素

    在过去的几周里 我从头开始构建了我的应用程序 我在执行说明时做到了here http docs angularjs org guide ie 我不得不说 在任何普通浏览器 例如 Mozilla 或 Chrome 上一切都很好 而且 Angu