嗨我有一個角度網格和角度圖表的設置,其中塊位置和圖表是從Firebase數據生成的。使用Angularfire保存部分數據
像這樣
<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>
和Controller
var fire = new Firebase(FIREURL);
$scope.widgets = $firebaseArray(fire)
var getChart = {
a: function(days){
return aChartFactory.createChartData(days);
},
u: function(days){
return uChartFactory.createChartData(days);
},
}
$scope.getTheData = function(widget){
getChart[widget.data](widget.time).then(function(data){
widget.data = data[1];
widget.labels = data[0];
widget.series = data[2];
});
};
一個小工具的初始數據看起來像這樣
widget.$id {
row: 1,
col: 2,
sizeX: 2,
sizeY: 2,
type: 'bar',
labels: 'labels',
data: 'a',
series: 'series',
time: 30
}
內getChart工廠只是用於生成chartdata 。
我遇到的問題是當我試圖保存從網格移動塊的位置。
因爲通過移動一個塊,多個塊可以有新的行和列我嘗試包裝$ scope.widgets。$保存在forEach函數中。
新的塊位置保存的很好,但生成的chartdata widget.data,widget.labels和widget.series也是如此。
所以我的初始設置被替換,這意味着現在的圖表是靜態的,而不是..
我試圖把孩子()的foreEach的內部設置,而不是保存剛纔所需要的屬性,但是這似乎並沒有不工作。 我想這是因爲我無法做到firebase ref上的循環,只有陣列,我不能這樣做.set
是否有任何其他方式可以在所有項目上只設置特定屬性?
好吧,我會嘗試一下,所以可能通過ID上的所有塊一個得到記錄,然後你的榜樣? – Stellan