将角度范围变量传递给javascript
我有一个角度范围变量,它也在ng repeat中使用。我想创建一个从某个日期开始到某个日期结束的图表,并使用当前日期标记。我使用javascript loader.js来绘制图表,但因为我需要在ng repeat中绘制多个图表。 我的代码如下所示:将角度范围变量传递给javascript,javascript,angularjs,charts,scope,Javascript,Angularjs,Charts,Scope,我有一个角度范围变量,它也在ng repeat中使用。我想创建一个从某个日期开始到某个日期结束的图表,并使用当前日期标记。我使用javascript loader.js来绘制图表,但因为我需要在ng repeat中绘制多个图表。 我的代码如下所示: $scope.items = [{"title1":"start_day: 01-01-2017", "end_day:15-02-2018"}, {"title2":"start_day: 05-10-2017", "end_day:10-01-2
$scope.items = [{"title1":"start_day: 01-01-2017", "end_day:15-02-2018"},
{"title2":"start_day: 05-10-2017", "end_day:10-01-2019"}];
谷歌图表中的javascript代码:
anychart.onDocumentReady(function () {
// create data tree on our data
var treeData = anychart.data.tree(getData());
// create resource gantt chart
var chart = anychart.ganttResource();
// set container id for the chart
chart.container('container');
// set data for the chart
chart.data(treeData);
// set start splitter position settings
chart.splitterPosition(150);
var now = (new Date()).getTime();
var sec = 1000;
var min = 60*sec;
var hour = 60*min;
var day = 24*hour;
// create linemarkers
var tl = chart.getTimeline();
tl.lineMarker(0).value("current");
// get chart data grid link to set column settings
var dataGrid = chart.dataGrid();
// initiate chart drawing
chart.draw();
// zoom chart to specified date
chart.fitAll();
});
function getData() {
var now = (new Date()).getTime();
var sec = 1000;
var min = 60*sec;
var hour = 60*min;
var day = 24*hour;
return [
{
"periods": [
{"id": "1_1", "start": now - 365*day, "end": now + 100*day }]
},
];
}
我想将angularjs scope变量中的日期传递到javascript代码中,该代码将替换现有的开始和结束数据,还需要转换日期差。
提前感谢!:) 我建议使用另一个JS对象来存储angular和JS的公共数据
var DATES = [{"title1":"start_day: 01-01-2017", "end_day:15-02-2018"},
{"title2":"start_day: 05-10-2017", "end_day:10-01-2019"}];
...
//in agular
$scope.items = DATES;
...
//in loader
function getData() {
...
return DATES;
}
您还可以将angular$scope存储到变量中,然后将其作为常用变量使用到JS代码中,var ctrl=$scope
,但我建议使用第一个选项
--
关于日期差异。尝试使用标准日期类。
例如:
var deltaMS = new Date("02-15-2018") - new Date("01-01-2017");
var deltaDays = delta / 1000 / 60/ 60 / 24;
//410 days
@telman agababovan非常感谢你,伙计!但要将数据存储在另一个JS变量中,我是否需要执行ajax调用,因为我从SharePoint列表中获取数据?我不熟悉SharePoint,但可能需要。然后最好在加载后启动控制器和图表,使数据同步,或者需要一些事件广播机制。