自定义Angular.js过滤器在ng-repeat上的IE8中没有返回任何内容,在Chrome / FF中运行正常

时间:2013-12-09 16:54:27

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

我编写了一个自定义过滤器来更改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 时,它按预期工作。 :)

2 个答案:

答案 0 :(得分:1)

IE 8不支持

array.forEach,您是否还记得{8}用于IE 8?或者,使用polyfill

答案 1 :(得分:0)

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