将firebase连接到Angular JS - 可能是json问题

时间:2017-02-19 06:50:18

标签: javascript angularjs json firebase firebase-realtime-database

问题是如何格式化firebase以使用angular。我有一个使用ng作为静态视图的视图。在$ scope中,它定义如下

$scope.standardItems = [{
    name: "The Name",
    sizeX: 2,
    sizeY: 1,
    row: 0,
    col: 0
}, {......etc

但是,如果我尝试从firebase提供数据,它可能无法正常工作,因为输出格式不正确。连接似乎很好,我可以添加数据,但firebase添加自己的ID。这是从firebase控制台

导出数据的方式
{
    "-KdJVcYUXMfeym3jPy04" : {
    "att" : "grid",
    "col" : 0,
    "id" : 1487476528646,
    "name" : "This is a test grid",
    "row" : 0,
    "sizeX" : 2,
    "sizeY" : 1
},

额外的参数并不重要,但嵌套可能是。我已使用此

记录了firebase数组的输出
var todosRef = new Firebase('https://xxxxxxxxxx.firebaseio.com/');
$scope.todos = $firebaseArray(todosRef);
console.log($scope.todos);

我在Chrome调试控制台中得到了这个

Array[0]
    0:Object
        $id: "-KjhbuvgtVvFUnbfbmj04"
        $priority:null
        att:"grid"
        col:0
        id:1487476528646
        name:"This is a test grid"
        row:0
        sizeX:2
        sizeY:1
    __proto__

以下是使用角度ng-repeat

的视图中的重要行
<li gridster-item row="item.position[0]" col="item.position[1]" size-x="item.size.x" size-y="item.size.y" ng-repeat="item in todos">
    //..
</li>

我的问题是如何从控制器传递给上面的静态示例中传递的角度(视图)?我怎样才能打印&#34;究竟是从数组传递给角度的 - 从firebase控制台和chrome日志控制台的导出并不完全相同。所有父节点都是唯一的非顺序ID(例如-KdJVcYUXMfeym3jPy04)并没有帮助,因为如何将它们再次剥离 - 或者如何使用诸如&#34; grid&#34;这样的单词并不明显。我是否需要在路径中使用通配符,如果是,那么它是什么?代码使用静态本地数组,因此它只是从firebase读取json。

1 个答案:

答案 0 :(得分:0)

好的,我希望这个答案很有帮助。这里发布的代码没有错! Angular js将在没有任何更改的情况下读取firebase,并且chrome控制台和firebase控制台的输出看起来就像它们在这里,即使添加了“-adgadhfe445ggh45”id索引。在我的情况下,我做了一个语法错误,从控制器中排除了ng-repeat,因为它落在了外面并且它的结束div

但至少我们现在知道我们不需要任何代码来重新格式化firebase。