【问题标题】:Connecting firebase to Angular JS - possible json issue将 firebase 连接到 Angular JS - 可能的 json 问题
【发布时间】:2017-07-08 13:08:27
【问题描述】:

问题是如何格式化 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>

我的问题是如何将上面静态示例中从控制器传递的内容准确地传递给角度(视图)?我怎样才能准确地“打印”从数组传递给 angular 的内容 - 从 firebase 控制台和 chrome 日志控制台导出的内容并不完全相同。所有父节点都是唯一的非顺序 ID(例如 -KdJVcYUXMfeym3jPy04)并没有帮助,因为如何再次剥离它们并不明显 - 或者如何使用诸如“网格”之类的词。我需要在路径中使用通配符吗?如果需要,它是什么?该代码使用静态本地数组工作,因此所有关于从 firebase 读取 json 的内容。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-09
      • 2021-06-29
      • 2022-11-04
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      • 1970-01-01
      • 2018-06-20
      相关资源
      最近更新 更多