Javascript 使用Angularfire保存部分数据
嗨,我有一个angular gridster和angular chartjs的设置,其中块位置和图表是从Firebase数据生成的 像这样的Javascript 使用Angularfire保存部分数据,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,嗨,我有一个angular gridster和angular chartjs的设置,其中块位置和图表是从Firebase数据生成的 像这样的 <div gridster-item="widget" ng-repeat="widget in widgets" ng-init="getTheData(widget)"> <canvas id="line-gridster" class="chart-base" chart-type="widget.type" data="w
<div gridster-item="widget" ng-repeat="widget in widgets" ng-init="getTheData(widget)">
<canvas id="line-gridster" class="chart-base" chart-type="widget.type" data="widget.data" labels="widget.labels" legend="false" series="widget.series" ></canvas>
</div>
widget.$id {
row: 1,
col: 2,
sizeX: 2,
sizeY: 2,
type: 'bar',
labels: 'labels',
data: 'a',
series: 'series',
time: 30
}
小部件的初始数据如下所示
<div gridster-item="widget" ng-repeat="widget in widgets" ng-init="getTheData(widget)">
<canvas id="line-gridster" class="chart-base" chart-type="widget.type" data="widget.data" labels="widget.labels" legend="false" series="widget.series" ></canvas>
</div>
widget.$id {
row: 1,
col: 2,
sizeX: 2,
sizeY: 2,
type: 'bar',
labels: 'labels',
data: 'a',
series: 'series',
time: 30
}
getChart中的工厂仅用于生成图表数据
我遇到的问题是,当我试图从gridster保存移动块的位置时
因为通过移动块,服务器块可以有新行和列,所以我尝试在forEach函数中包装$scope.widgets.$save
新的块位置保存得很好,但生成的chartdata widget.data、widget.labels和widget.series也保存得很好
因此,我的初始设置被替换,这意味着现在图表是静态的
我尝试将child().set放在foreach中,以只保存所需的属性,但这似乎不起作用。
我猜这是因为我不能在firebase ref上循环,只能在数组上循环,我不能在数组中循环。设置
有没有其他方法可以只在所有项目上设置特定属性?AngularFire没有方法只更新对象的一部分。但由于AngularFire构建在Firebase的JavaScript SDK之上,因此您可以访问它提供的所有优点。这意味着您可以使用
Firebase.update()
方法,该方法只会更新您指定的属性
如果您有$firebaseObject
,则可以使用以下内容更新某些属性:
object.$ref().update({ key1: 'newValue1', key7: 'newValue2' });
AngularFire没有只更新部分对象的方法。但由于AngularFire构建在Firebase的JavaScript SDK之上,因此您可以访问它提供的所有优点。这意味着您可以使用
Firebase.update()
方法,该方法只会更新您指定的属性
如果您有$firebaseObject
,则可以使用以下内容更新某些属性:
object.$ref().update({ key1: 'newValue1', key7: 'newValue2' });
AngularFire没有只更新部分对象的方法。但由于AngularFire构建在Firebase的JavaScript SDK之上,因此您可以访问它提供的所有优点。这意味着您可以使用
Firebase.update()
方法,该方法只会更新您指定的属性
如果您有$firebaseObject
,则可以使用以下内容更新某些属性:
object.$ref().update({ key1: 'newValue1', key7: 'newValue2' });
AngularFire没有只更新部分对象的方法。但由于AngularFire构建在Firebase的JavaScript SDK之上,因此您可以访问它提供的所有优点。这意味着您可以使用
Firebase.update()
方法,该方法只会更新您指定的属性
如果您有$firebaseObject
,则可以使用以下内容更新某些属性:
object.$ref().update({ key1: 'newValue1', key7: 'newValue2' });
好的,我会试试,所以可能在所有块上都是按id获取记录,然后是你的示例?好的,我会试试,所以可能在所有块上都是按id获取记录,然后是你的示例?好的,我会试试,所以可能在所有块上都是按id获取记录,然后是你的示例?