Передача директив в качестве контента для элементов VIS
Я использовал visjs.org/docs/timeline/, чтобы показать представление данных на временной шкале. У меня есть директива, которая берет данные из API и создает шаблон, используя $compile
метод.
<vis-timeline timeline-data="apiData"></vis-timeline>
И в linkFn
Я перебираю данные, чтобы создать область для шаблона, который должен быть передан в качестве содержимого для 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];
});
}
}
Я выдвигаю скомпилированный шаблон как контент для DataSet
который добавляется к временной шкале. Несмотря на то, что этот метод работает хорошо, для построения временной шкалы требуется около 10 секунд. Любое редактирование временной шкалы займет еще 10 секунд, чтобы отразить.
Если я добавлю простой шаблон вместо него, он будет добавлен быстро. Как улучшить скорость компиляции шаблонов?