2016-06-27 3 views
0

Im пытается добавить пользовательское событие в плагин fullcallendar.angular append всюду последний скомпилированный элемент

eventRender: function(event, eventElement) { 
    scope.tmp = { 
     time: $time, 
     $title: $title, 
     crest: event.clubCrest, 
     statusKey: statusKey 
    }; 
    scope.data = angular.copy(scope.tmp); 
    template = $compile("<event-label data="{{data}}" ></event-label>"))(scope); 
    return eventElement.find("div.fc-content").append(template); 

scope.data предоставляют отдельные данные в директиве, но добавляется в директиве только с последним доставлены данные в директиве eventLabel. Как отделить эти директивы? Есть ли что-то, что я делаю неправильно?

angular.module('acc.directives').directive 'eventLabel',() -> 
    templateUrl: 'dist/views/commons/directives/calendar/customEvent/eventLabel/template.html' 
    restrict: 'E' 
    scope: {} 
    link: (scope, element, attribute) -> 
    scope.data = angular.fromJson(attribute.data) 
    console.log(scope.data); //this console log returns last provided data 
+0

Поскольку каждое событие визуализируется вы перезапись 'scope.data'. Попробуйте сделать объект scope.data и использовать идентификатор события как ключи – charlietfl

ответ

0

This video решено мое дело.
В ближайшее время:
{{}} скобки передают данные через ссылку, поэтому нет ничего странного в том, что переданные разные данные в директиву получили те же (последние прошедшие) данные. Решение было передать его как

data = JSON.stringify(scope.tmp); 
template = $compile("<event-label data='" + data + "'></event-label>")(scope); 
return eventElement.find("div.fc-content").append(template); 

затем в директиве
scope.data = angular.fromJson(attribute.data);

Смежные вопросы