2017-05-03 80 views
0

我正在使用角度js和moment.js。现在我正在为线图生成级别。所以我需要为x轴值设置一些等级。我想在x'axis中设置小时间隔。现在我正在静态使用这些(x'aix)值,但现在我想用javascript函数动态设置。我想以时间间隔以数组形式设置水平

var lineData = { labels: ["0hr", "1hr", "2hr", "3hr", "4hr", "5hr", "6hr"], 
       datasets: [     
        { 
         label: "My Second dataset", 
         fillColor: "rgba(151,187,205,0.2)",      
         pointHighlightFill: "#fff", 
         pointHighlightStroke: "rgba(151,187,205,1)", 
         data: [28, 48, 40, 19, 86, 27, 80] 
        } 
       ] 
      }; 
var startFromTime=11; 
var endToTime=15; 

我想在标签中设置从11到15的时间间隔。

标签:[ “0HR”, “1小时”, “2小时”, “3小时”, “4小时”, “5小时”, “6小时”]

enter image description here

可以我设置将这些值以数组形式分配给变量,并将此变量分配到标签中:[1,2,3,4]

回答

0

您不需要moment.JS,而是一个普通的旧JavaScript函数可以完成这项工作。

function getTimeLabels(start) { 
var timeStart = start; 
var limit = 7; 

var resultArr = []; 
var counter = 0; 

for (var x = 0; x < (timeStart + limit); x++) { 

    if (x > 24) { 
     resultArr.push(counter + "hr"); 
    } 
    resultArr.push(x + "hr"); 
} 

return resultArr; 
} 

在这里,你通过你希望在启动号码,它会产生你的标签,它也考虑到当x越过24,并使用不同的计数器来完成操作发生后。

你的代码修改:

var lineData = { labels: getTimeLabels(0), 
       datasets: [     
        { 
         label: "My Second dataset", 
         fillColor: "rgba(151,187,205,0.2)",      
         pointHighlightFill: "#fff", 
         pointHighlightStroke: "rgba(151,187,205,1)", 
         data: [28, 48, 40, 19, 86, 27, 80] 
        } 
       ] 
      }; 
var startFromTime=11; 
var endToTime=15; 
+0

什么是极限= 7? –

+0

谢谢。但我想绘制x轴值。如果我选择开始时间5和结束时间13小时,那么它必须绘制5,6,7,8,9,10,11,12,13。 –

+0

限制是它将移动的位置的数量,您可以另外添加另一个参数作为限制,而我们可以移动更多位置。 –