![](/img/trans.png)
[英]How to subtract all items from an array in linear order in JavaScript?
[英]Want to add and subtract items from $scope array
我正在使用$ scope.exchange將數據發送到ng3圖表。 我希望圖表添加一個新值並刪除最舊的值。 所以我從來沒有超過3分。 目前,它每秒增加3點,但從不刪除任何點。 如果我將帶有slice的線更改為$ scope.exchange = [],則圖表將繪制前3個,並且不再更新。 如果我使用了已注釋掉的while循環,則圖表每秒都會重繪所有內容。 這會閃爍屏幕,看起來很難看。 我能做什么?
(function(){
var app = angular.module('exchange-directives', []);
app.directive('tableRows', function() {
return {
restrict: 'E',
templateUrl: "js/directives/tableRow.html",
scope:'=',
link: function(scope, elements, attrs){
},
controller: ['$http', '$timeout', '$scope', function($http, $timeout, $scope) {
var table = this;
table.rows = [];
var count = 0;
var retrieveItems = function() {
if($scope.exchange.length != 0) $scope.exchange.slice(3);
//while($scope.exchange.length){
// $scope.exchange.pop();
//}
$http.get('/dashboard/history').success(function(data){//change back to '/dashboard/rates' when aws goes back online
table.rows = data;
for (i = 0; i < 3; i++){
var vals = {
x: count++,
dates: data.dates[i],
rates: data.rates[i]
}
$scope.exchange.push(vals);
}
$timeout(retrieveItems, 1000);
});
}
retrieveItems();
}],
controllerAs: "table",
};
});
})();
擺弄小提琴會容易一些,但是我想這就是您想要的。 首先,我將“取消轉移”這個新信息,而不是“推送”它。 在我看來,您當前正在將數據添加到末尾,然后刪除相同的數據。 然后,我將pop()作為結束項,而不是假設該對象具有3個項。 接下來,我輸入您要加載的項目數。 我不確定table.rows數組的使用方式,但是我想您也想取消這一操作。
var retrieveItems = function(num) {
num = num || 1;
if($scope.exchange.length != 0) $scope.exchange.pop();
$http.get('/dashboard/history').success(function(data){
table.rows.unshift(data);
for (i = 0; i < num; i++){
var vals = {
x: count++,
dates: data.dates[i],
rates: data.rates[i]
}
$scope.exchange.unshift(vals);
}
$timeout(retrieveItems, 1000);
});
}
retrieveItems(3);
希望這可以幫助。
@Shashank步入正軌,一切都在創建一個我的其余代碼無法接受的新對象。 pop()只是改變當前數組,因此被代碼的所有部分接受。 所以我要做
this.setHistory = function(input) {
while($scope.exchange.length){
$scope.exchange.pop();
}
$scope.history = input;
startup(input, $scope.historyData);
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.