【问题标题】:Custom Angular.js filter returning nothing in IE8 on ng-repeat, works fine in Chrome/FF自定义 Angular.js 过滤器在 ng-repeat 上的 IE8 中不返回任何内容,在 Chrome/FF 中工作正常
【发布时间】:2015-12-11 02:43:13
【问题描述】:

我编写了一个自定义过滤器来更改 ng-repeat 的输出。我们有一个 JSON 格式的文件列表,我正在从过滤器创建指向资产的链接,因为 json 仅使用文件名而不是实际路径来构建它们。

过滤器

filter('readLink', [function(){
return function(text) {

    var myURI = [],
        newLink;
    text.split('/').forEach(function(uriItem) {
        myURI.push(uriItem);
    });

    newLink = myURI[3] + '/' + myURI[4] + '/' + myURI[5] + '/' + myURI[6];

    return newLink;
    }
}])

HTML 绑定

<ul class="sob-repeat">
  <li ng-repeat="sobitem in sobUT">
  <h4>{{sobitem.title}}</h4>
  {{sobitem.date}} - <a ng-href="{{sobitem.audio | audioFix}}">Listen</a> - <a ng-href="#/read/{{sobitem.transcript | readLink}}">Read</a>
  </li>
</ul>

在 IE8 中出现,而在 REAL BROWSERS 中它按预期工作。 :)

【问题讨论】:

    标签: javascript angularjs internet-explorer-8 angularjs-ng-repeat angularjs-filter


    【解决方案1】:

    array.forEach 在 IE 8 上不受支持,您还记得在 IE 8 上使用polyfill 吗?或者,使用angular.forEach

    【讨论】:

    • 是的,是 forEach 破坏了我的过滤器。谢谢。
    【解决方案2】:

    我最近遇到了同样的问题。更改为angular.forEach没有解决问题。相反,普通的for loop 解决了这个问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      相关资源
      最近更新 更多