Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取第一个条件为角的元素_Javascript_Angularjs - Fatal编程技术网

Javascript 获取第一个条件为角的元素

Javascript 获取第一个条件为角的元素,javascript,angularjs,Javascript,Angularjs,我有以下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> 我怎样才能解决这个问题 是否可以将其转换为过滤器 在对象(文件)列表中,我需要获取具有给定类型的第一个对象。

我有以下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>
我怎样才能解决这个问题

是否可以将其转换为过滤器


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

当然。。。创建自己的筛选器,然后将其传递到数据ng src:

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

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

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

这种逻辑应该在控制器或自定义过滤器中。我认为这并不是OP想要的。首先,它需要定制过滤器
myFilter
,然后它还将返回过滤后的数组,而
ngSrc
将期望
url
。这取决于您如何实现过滤器。Mathew没有为过滤器编写代码,但他只是为Miguel提供了足够的信息来解决他的问题。我想按类型进行过滤,但得到一个数组或列表中的第一项。我想向过滤器表明我是想要所有匹配项还是第一个匹配项。但总是得到文件。然后,它将指定要使用的属性。但我愿意接受这样的建议,这是行不通的。始终返回列表中的第一个,而不是类型等于ebook.cover的。知道为什么吗?我想你的意思是“{(ebook.files | filter:{type:'ebook.cover'})[0].url}”。。。在这种情况下它是有效的。你是对的,我的意思是
{type:'ebook.cover'}
当然。
data-ng-src="{{ (ebook.files | filter:{type:'ebook.cover'})[0].url }}"