2016-06-27 8 views
0

私はfullcallendarプラグインでカスタムイベントを追加しようとしています。角がどこにでも最後にコンパイルされた要素

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

ディレクティブ
で、その後

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

ようにそれを渡しました。 'scope.data'をオブジェクトにして、イベントIDをキーとして使用してみてください – charlietfl

答えて

0

This video解決しました。
まもなく:
中括弧は参照を介してデータをスローします。したがって、異なるデータを渡して同じ(最後に渡された)データを持つディレクティブには何も変わりません。 ソリューションは、各イベントは、あなたが `scope.data`を上書きしているレンダリングされるとscope.data = angular.fromJson(attribute.data);

関連する問題