使用AngularFire

时间:2016-01-23 00:20:54

标签: javascript angularjs firebase angularfire

我正在尝试创建一个页面,显示有关某个音乐作品的大量信息,但我只想每页查看一个音乐作品。我已经使用ng-repeat创建了所有音乐片段的视图,但现在我想点击其中一个片段并在不同的页面上显示所有片段的独特内容。问题是,我尝试做的每件事都无法在我的数据结构中深入挖掘任何东西。它目前的组织方式如下:

MusicDB
    concertBand {
        uniqueIDFireBaseGenerates {
             name: "piece1"
             composer1: "name1"
             composer2: "name2"
             ...
        }
    }
    marchingBand {
        uniqueIDFireBaseGenerates {
             name: "piece1"
             composer1: "name1"
             composer2: "name2"
             ...
        }
    }

我可以抓住所有第一级罚款,但是当需要使用仅针对其中一件作品的数据时,我没有成功。

我有一个路线设置,当用户点击它时转到特定的部分。所有这一切都很好。我只是不确定如何获取特定项目的数据。

对我而言,似乎我应该能够使用像{{marching。$ id.name}}之类的东西,但这样做没有用(并且可能不应该那样工作)。无论如何这里是我的代码。

music.js

    myApp.controller('MusicController', 
    ['$scope', '$rootScope', '$firebaseAuth', '$firebaseArray','$routeParams','FIREBASE_URL',
    function($scope, $rootScope, $firebaseAuth, $firebaseArray, $routeParams, FIREBASE_URL) {

        $scope.whichmarch = $routeParams.marchingId;
        $scope.whichconcert = $routeParams.concertId;

        var marchRef = new Firebase(FIREBASE_URL + '/marchingBand');
        var marchInfo = $firebaseArray(marchRef);
        $scope.march = marchInfo;

        var concertRef = new Firebase(FIREBASE_URL + '/concertBand');
        var concertInfo = $firebaseArray(concertRef);
        $scope.concerts = concertInfo;

        var marchView = new Firebase(FIREBASE_URL + '/marchingBand/' + $scope.whichmarch);
        var marchViewOne = $firebaseArray(marchView);
        $scope.marchCurrent = marchViewOne;

viewMarch.html

<div class="card cf">

  <div class="textintro" ng-repeat="march in march">
    <h1>{{march.$id.name}} Marching View Page</h1>
  </div><!-- textintro -->
  </div>

我知道我遗漏了一些显而易见的东西,我已经浏览了在线文档和很多论坛帖子,但有些东西只是没有为我联系(在我的大脑中)。

我还使用了当前在music.js文件中的“marchCurrent”。如果它是正确的话,我可能无法正确地调用它。

1 个答案:

答案 0 :(得分:0)

好吧,我让我的数据再深一层,并为每一层中的每一块存储唯一值。现在我可以使用ng-repeat来获取每个唯一片段的一组值。我觉得还有另一种方法可以做到这一点,但这适用于我需要做的事情!