AngularJS,小技巧
AngularJS , small trick
我有一个问题。当 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>
我想用参数 'this' 调用 init 函数,这将是第一个 'li' 项。只有第一个li我想设置一些东西。
参见 here 检查 $index 是否为零或 $first 是否为真。
你可以这样做:
<ul ng-repeat="up in userpartners" ng-init="init(up, $first);">
<li>
{{up}}
</li>
</ul>
在控制器中:
$scope.init = function (item, isFirst) {
if (isFirst) {
alert(item);
}
};
但是您的 UL
中已经有一个 LI
。
我相信你的意思是:
<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>
看出区别了吗?我们要重复子项,而不是整个列表。
虽然我认为在视图上进行此调用不是一个好的做法。我会把它放在一个控制器中,即调用本身。
我有一个问题。当 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>
我想用参数 'this' 调用 init 函数,这将是第一个 'li' 项。只有第一个li我想设置一些东西。
参见 here 检查 $index 是否为零或 $first 是否为真。
你可以这样做:
<ul ng-repeat="up in userpartners" ng-init="init(up, $first);">
<li>
{{up}}
</li>
</ul>
在控制器中:
$scope.init = function (item, isFirst) {
if (isFirst) {
alert(item);
}
};
但是您的 UL
中已经有一个 LI
。
我相信你的意思是:
<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>
看出区别了吗?我们要重复子项,而不是整个列表。
虽然我认为在视图上进行此调用不是一个好的做法。我会把它放在一个控制器中,即调用本身。