2016-05-17 72 views
1

我正在使用Angular Meteor,並且我有一個訂閱發佈複合發佈的控制器,它返回兩個遊標。我想要做的是對一個遊標進行ng重複操作,並根據第一個遊標的值從第二個遊標獲取值。就像這樣:將值從html傳遞到AngularJS控制器

{{getName(a.id)}} 

其中a是第一光標的一個對象,並在控制器我有$scope.getName(id)功能,從第二光標返回一個名字,就像這樣:

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

它的工作,但問題是getName函數受到不必要的次數。根據第一個遊標的對象ng-repeat有沒有更好的方法從第二個遊標獲取數據?是否嵌套ng-repeat這樣做?我該怎麼做?

謝謝。

+0

「返回兩個遊標」是什麼意思? – isherwood

+0

如果在通過平面數據結構同時獲得「遊標」和「ng」之後進行1-1查找,那麼您是否沒有辦法合併這兩個數組?事實上,如果索引是相同的,那麼這樣的事情呢? http://stackoverflow.com/questions/28094394/using-ng-repeat-on-multiple-arrays –

回答

1

看起來好像您專注於ng-repeat的性能。很高興你有這種感覺!從我記憶中,ng-repeat一直是許多第三方圖書館和討論的優化焦點。

就你而言,我的第一次嘗試是將ng-repeat中的值綁定一次。您可以在表達式上使用::語法來完成此操作。

例如,這會調用表達式一次。

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

在您的問題結束時,您提到了一個嵌套重複,但您的問題只提到它的一次性使用。我錯過了什麼嗎?免責聲明:我從來沒有使用Angular Meteor(或甚至獨立的Meteor),所以這可能是一個更好的方法來解決你的問題。

via:https://docs.angularjs.org/guide/expression

+0

感謝您的幫助 - 它的作品! – user6346292