「bookings.reservationFor.apartmentId」の参照が渡されると、Angular NormalizedCollection が機能するようになりました。サンプルのfirebaseエントリを作成し、apartmentIdを「reservationFor」の値として直接定義し、「bookings.reservationFor」をselect()パラメーターに渡したところ、完璧に機能していました。
angularFireは初めてです。このコードの何が問題なのか教えてください。
Firebase v2.2.9 を使用。AngularJs v1.5.6; AngularFire v1.2.0;
ファイアーベースの構造
FB
|
--apartment
| |
| --apartment1
| |
| --name: "test name"
| --address: "test address"
| --apartment2
| |
| --name: "test name"
| --address: "test address"
|
--booking
|
--"-JFZG3coHOAblHZ7XSjK"
| |
| --date: "booking date 1"
| --reservatonFor:
|
--apartmentId: "apartment1"
|
--"-KJKJASDIUOPIWE9WEeJ"
| |
| --date: "booking date 2"
| --reservatonFor:
|
--apartmentId: "apartment2"
|
--"-YtUTRGJLNL876F3SSwS"
| |
| --date: "booking date 3"
| --reservatonFor:
|
--apartmentId: "apartment1"
|
コントローラ
function mainCtrlFunc($scope, $firebaseArray) {
var baseRef = new Firebase(firebaseUrl);
var norm = new Firebase.util.NormalizedCollection(
[baseRef.child("booking"), "bookings"]
[baseRef.child("apartment"), "apartments", "bookings.reservationFor.apartmentId"]
).select(
"bookings.date",
"apartments.name"
)ref();
$scope.bookings = $firebaseArray(norm);
}
エラー: Firebase.child が失敗しました: 最初の引数は無効なパスでした: "[object Object]"。パスは空でない文字列である必要があり、"."、"#"、"$"、"["、または "]" を含めることはできません。