选择angularjs ng-repeat中的第一个元素

时间:2015-08-06 19:43:51

标签: javascript angularjs

我有一个ng-repeat填充li标签。我希望默认情况下应该单击第一个元素并触发一个函数。我怎么能用ng-repeated做到这一点。我尝试过ng-if和ng-switch。但是,除了第一个元素休息之外,其他人不会被填充。

HTML:

<ul id = "colors">
    <li ng-repeat="color in colors | filter:query" >
        <div style="background-color : {{color.color}}; height : 20px; width : 20px;" ng-if = '$first' ng-click="getViewsByColors(color)">
        </div>
    </li>
</ul>

1 个答案:

答案 0 :(得分:7)

使用ng-init。您的点击事件不会以这种方式触发。 根据文件

  

ngInit的唯一合适用途是对特殊属性进行别名处理   ngRepeat。你应该   使用控制器而不是ngInit来初始化作用域上的值。

您的代码段看起来像

它将为您的数组/对象的第一次迭代执行<div style="background-color : {{color.color}}; height : 20px; width : 20px;" ng-init="($first) ? getViewsByColors(color) : ''"> 函数。在这种情况下,您不需要使用getViewsByColors。它不适用于其余的价值观。 `