Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Angularfire保存部分数据_Javascript_Angularjs_Firebase_Angularfire - Fatal编程技术网

Javascript 使用Angularfire保存部分数据

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

嗨,我有一个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="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获取记录,然后是你的示例?