将指令作为VIS项的内容传递

时间:2018-01-08 10:58:27

标签: angularjs angularjs-directive vis.js vis.js-timeline

我一直在使用visjs.org/docs/timeline/来显示数据的时间轴视图。我有一个指令,它从API获取数据并使用$compile方法创建模板。

<vis-timeline timeline-data="apiData"></vis-timeline>

linkFn我正在迭代数据以创建模板的范围,该范围将作为vis DataSet的内容传递。

link: function(scope,element,attr){
   if(scope.roster.timelineData){

     angular.forEach(scope.roster.timelineData, function(){

     //Create a scope for the directive used for vis DataSet
     var templateScope = scope.$new(true);//create an isolated scope

     templateScope.name = 'templateData';
     //this can be different for each iteration

     var template = $compile('<timeline-item template-data="name"></timeline-item>')(templateScope)[0];

     });
   }
 }

我将已编译的模板作为vis DataSet的内容推送,该内容将添加到时间轴中。尽管此方法运行良好,但构建时间轴大约需要10秒钟。对时间线的任何编辑都需要10秒才能反映出来。

如果我添加一个普通模板而不是它,它确实会快速添加。如何提高编译模板的速度?

0 个答案:

没有答案