我有一个问题。当ul有一个ng-repeat时,有没有人知道怎么在控制器中只为ul中的第一个li对象调用函数?
让我们说我的控制器中的功能如下:
var init = function () {
var a = this;
};
我的ul转发器接缝就像让我们说:
<ul ng-repeat="up in userpartners" ng-click="setSelected(this);">
<li>
{{up.id}}
</li>
</ul>
我想用参数&#39;这个&#39;来调用init函数。这将是第一个&#39; li&#39;项目。只为第一个我想设置的东西。
答案 0 :(得分:0)
请参阅here检查$ index是否为零或$ first为真。
答案 1 :(得分:0)
你可以这样做:
<ul ng-repeat="up in userpartners" ng-init="init(up, $first);">
<li>
{{up}}
</li>
</ul>
在控制器中:
$scope.init = function (item, isFirst) {
if (isFirst) {
alert(item);
}
};
答案 2 :(得分:0)
但是LI
中已经有一个UL
。
我相信你的意思是:
<ul>
<li ng-repeat="up in userpartners" ng-init="$first && setSelected(up)">
{{up.id}}
</li>
</ul>
或
<ul ng-init="setSelected(userpartners[0])">
<li ng-repeat="up in userpartners">
{{up.id}}
</li>
</ul>
看到区别?我们想重复孩子,而不是整个名单。
虽然我相信在视图上进行此调用并不是一个好习惯。我把它放在一个控制器里面,就是呼叫本身。