获取条件为Angular的第一个元素

Get first element with condition in Angular

本文关键字:第一个 元素 Angular 条件 获取      更新时间:2023-09-26

我有以下Angular 1.0代码:

  <div ng-repeat="ebook in vml.ebooks">
    <img data-ng-src="{{ ebook.files.filter(function (v) { return v.type === 'ebook.cover'; })[0].url }}" />
  </div>

但我得到了错误:

"Error: [$parse:syntax] Syntax Error: Token 'ebook' is an unexpected token at column 55 of the expression ['ebook.files.filter(function (v) { return v.type === 'ebook.cover'; })[0].url'] starting at [ebook.cover'; })[0].url'].    

我该如何解决这个问题?

是否可以将其转换为筛选器?

在对象(文件)列表中,我需要获得具有给定类型的第一个对象。

当然。。。创建自己的过滤器,然后将其传递到数据ng-src:中

data-ng-src="{{ ebook.files | myFilter:'ebook.cover' }}

在Angular表达式中不能使用Array.prototype.filter方法。但是,您应该能够使用Angular过滤器来完成此操作。相应的表达式如下所示:

data-ng-src="{{ (ebook.files | filter:{type:'ebook.cover'})[0].url }}"