1

「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]"。パスは空でない文字列である必要があり、"."、"#"、"$"、"["、または "]" を含めることはできません。

4

0 に答える 0