【发布时间】: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