2016-06-27 11 views
0

Ich versuche, benutzerdefinierte Ereignis in fullcallendar Plugin hinzuzufügen.eckig anhängen überall zuletzt kompiliertes Element

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 getrennte Daten zu liefern, auf der Richtlinie, aber beigefügte Richtlinie ist mit nur zuletzt eventLabel Richtlinie Daten geliefert. Wie trennen Sie diese Anweisungen? Gibt es etwas, was ich falsch mache?

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

Da jedes Ereignis gerendert wird Sie überschreiben 'scope.data'. Versuchen Sie, 'scope.data' ein Objekt zu machen und verwenden Sie die Ereignis-ID als Schlüssel – charlietfl

Antwort

0

This video löste meinen Fall.
Die {{}} geschweifte Klammern werfen Daten durch Verweis, so gibt es nichts Seltsames über das übergeben verschiedene Daten zu Direktive bekam die gleichen (zuletzt übergeben) Daten. Lösung war übergeben Sie es wie

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

dann in Richtlinie
scope.data = angular.fromJson(attribute.data);

Verwandte Themen