Firebase AngularFire 通过查找从 DOM 加载对象

Firebase AngularFire load object from DOM via lookup

我正在迭代并将图书租赁列表显示为 Firebase 中的对象。每次租借都需要 link 一本书并显示有关它的一些详细信息。所以每个出租项目都有 Book 对象的 ID。这是我的 HTML:

<li ng-repeat="rental in rentals">
   {{rental.dueDate}} - {{lookup(rental.bookId).name}}
</li>

我在控制器中有以下查找方法:

$scope.lookup= function(bookId){
   var booksRef = firebase.database().ref().child("books");
   var book = $firebaseObject(booksRef.child(bookId));
   return book;
}

调试代码似乎正确调用了查找方法,returns 正确的书。

不幸的是,加载页面时出现异常:

10 $digest() iterations reached. Aborting! Watchers fired in the last 5 iterations: []

https://docs.angularjs.org/error/$rootScope/infdig?p0=10&p1=%5B%5D

有什么想法吗?

p.s。我很乐意使用不同的方法,如果它是更多 "correct" 一个

我很容易地解决了这个问题:

创建一个服务bookService并将其注入到控制器中。然后,从 html 调用它如下:

{{ bookService.$getRecord(rental.bookId).name }}