【问题标题】:Passing value from html to AngularJS controller将值从 html 传递到 AngularJS 控制器
【发布时间】:2016-05-17 23:43:23
【问题描述】:

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

{{getName(a.id)}}

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

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

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

谢谢。

【问题讨论】:

  • “返回两个光标”是什么意思?
  • 在平面数据结构上同时获得“光标”和 ng-repeat 后,如果是 1-1 查找,是否无法合并这两个数组?实际上,如果索引相同,那么这样的事情呢? stackoverflow.com/questions/28094394/…

标签: javascript angularjs meteor ng-repeat


【解决方案1】:

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

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

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

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

在您的问题结束时,您提到了嵌套重复,但您的问题只提到了它的单一用途。我错过了什么吗?

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    相关资源
    最近更新 更多