使用findWhere过滤带下划线的项目?

时间:2013-12-05 14:44:46

标签: underscore.js

我有以下下划线代码,它从外部JSON中提取数据并将其显示在列表中。

<script type="text/template" >
    var ids = [4021401143741,4021402266418];
</script>
     <script type="text/template" class="template">
        <ul>
                <% _.each( rc , function(productTile) {
                      if(_.findWhere(ids,productTile.id){
 %>
                <li class="productTile" data-id="<%= productTile.id %>">
                <img src="<%= productTile.images[0] %>" alt=""/>
            <h3>Demo<%= productTile["name"] %></h3>
            <p><%= productTile.price.formatted %></p>

                </li>           
                <% }  }); %>
      </script>
    var listingTemplate = _.template(
               $( "script.template" ).html()
           );

在外部JSON文件中有大约30种产品,但我只想显示6种特定产品的信息,我在此内部JSON声明:

我正在使用if(_.findWhere(ids,productTile.id){,但它不起作用,写入的方式有问题吗?

1 个答案:

答案 0 :(得分:1)

findWhere 的第二个参数应该是对象而不是基本类型。由于您有一系列数字,您需要使用包含功能:

var ids = [4021401143741,4021402266418];
var id = 4021401143741; 

if (_.contains(ids, id)){
    alert('yes')
}
else {
    alert('no');
}