将值从html传递到AngularJS控制器

Passing value from html to AngularJS controller

本文关键字:AngularJS 控制器 html      更新时间:2023-09-26

我使用的是Angular Meteor,我有一个控制器订阅了一个返回两个游标的发布复合发布。我想做的是在一个游标上重复,并根据第一个游标的值从第二个游标中获取值。像这样:

{{getName(a.id)}}

其中a是第一个光标的一个对象,在控制器中,我有$scope.getName(id)函数,它从第二个光标返回名称,如下所示:

name = second.find({ID: id}).fetch()[0].name

它起了作用,但问题是getName函数被击中了不必要的次数。基于第一个游标的ng-repeat对象,是否有更好的方法从第二个游标获取数据?嵌套的ng-repeat是这样做的吗?我该怎么做?

谢谢。

您似乎专注于ng-repeat的性能。很高兴你有这种感觉!据我所知,ng-repeat一直是许多第三方库和讨论的优化焦点。

在您的情况下,我的第一次尝试是只绑定ng-repeat中的值一次。您可以使用表达式上的::语法来执行此操作。

例如,这将调用表达式一次。

<ul ng-repeat="a in items">
  <li>{{::getName(a.id)}}</li>
</ul>

在你的问题的最后,你提到了一个嵌套的重复,但你的问题只提到了它的一次使用。我遗漏了什么吗?

免责声明:我从未使用过Angular Meteor(甚至是独立的Meteor),所以很可能有更好的方法来解决你的问题。

通过:https://docs.angularjs.org/guide/expression