Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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_Javascript_Angularjs_Charts_Scope - Fatal编程技术网

将角度范围变量传递给javascript

将角度范围变量传递给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

我有一个角度范围变量,它也在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-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,但可能需要。然后最好在加载后启动控制器和图表,使数据同步,或者需要一些事件广播机制。