将值从 html 传递到 AngularJS 控制器
Passing value from html to AngularJS controller
我正在使用 Angular Meteor 并且我有一个订阅发布复合发布的控制器,其中 returns 两个游标。我想要做的是在一个游标上 ng-repeat 并根据第一个游标的值从第二个游标获取值。像这样:
{{getName(a.id)}}
其中 a 是第一个游标的一个对象,在控制器中我有 $scope.getName(id)
函数 returns 来自第二个游标的名称,如下所示:
name = second.find({ID: id}).fetch()[0].name
它有效,但问题是 getName
函数被不必要的次数命中。有没有更好的方法根据第一个游标的 ng-repeat
对象从第二个游标获取数据?是嵌套ng-repeat
的办法吗?我该怎么做?
谢谢。
看来您很注重ng-repeat
的表现。很高兴你有这种感觉!据我所知,ng-repeat
一直是许多第 3 方库和讨论的优化重点。
对于您的情况,我的第一次尝试是仅将 ng-repeat
中的值绑定一次。您可以在表达式上使用 ::
语法来执行此操作。
例如,这会调用一次表达式。
<ul ng-repeat="a in items">
<li>{{::getName(a.id)}}</li>
</ul>
在你的问题末尾提到了嵌套重复,但你的问题只提到了它的一次使用。我错过了什么吗?
免责声明:我从未使用过 Angular Meteor(甚至是独立的 Meteor),因此很可能有更好的方法来解决您的问题。
我正在使用 Angular Meteor 并且我有一个订阅发布复合发布的控制器,其中 returns 两个游标。我想要做的是在一个游标上 ng-repeat 并根据第一个游标的值从第二个游标获取值。像这样:
{{getName(a.id)}}
其中 a 是第一个游标的一个对象,在控制器中我有 $scope.getName(id)
函数 returns 来自第二个游标的名称,如下所示:
name = second.find({ID: id}).fetch()[0].name
它有效,但问题是 getName
函数被不必要的次数命中。有没有更好的方法根据第一个游标的 ng-repeat
对象从第二个游标获取数据?是嵌套ng-repeat
的办法吗?我该怎么做?
谢谢。
看来您很注重ng-repeat
的表现。很高兴你有这种感觉!据我所知,ng-repeat
一直是许多第 3 方库和讨论的优化重点。
对于您的情况,我的第一次尝试是仅将 ng-repeat
中的值绑定一次。您可以在表达式上使用 ::
语法来执行此操作。
例如,这会调用一次表达式。
<ul ng-repeat="a in items">
<li>{{::getName(a.id)}}</li>
</ul>
在你的问题末尾提到了嵌套重复,但你的问题只提到了它的一次使用。我错过了什么吗?
免责声明:我从未使用过 Angular Meteor(甚至是独立的 Meteor),因此很可能有更好的方法来解决您的问题。