2013-07-27 11 views

risposta

7

marker.bindPopup (e [0]); invece di marker.bindPopup (clonedElement [0]);

+0

che funziona. Puoi spiegare perché? Ho pensato che se volessi collegare l'elemento al DOM dovresti usare l'elemento clonato. Da docs: cloneAttachFn - Se viene fornito cloneAttachFn, la funzione di collegamento clonerà il modello e chiamerà la funzione cloneAttachFn che consente al chiamante di allegare gli elementi clonati al documento DOM nella posizione appropriata. Il cloneAttachFn è chiamato come: cloneAttachFn (clonedElement, scope) – lostintranslation

+0

Dal documento angolare: "clonedElement - è un clone dell'elemento originale passato nel compilatore" Quindi suppongo che questo elemento non sia ancora stato compilato e collegato. – devmao

+0

Per qualche motivo, questo non funziona più in angular 1.2, il controller non può accedere a getContent() della direttiva. Qualche idea? –

1

Prova questa:

var directiveTag = $(document.createElement("search-results-map-marker-popup")); 
var compiledDirective = $compile(directiveTag)(popupScope); 

newMarker.bindPopup(compiledDirective[0]); 
2

È possibile utilizzare il nuovo supporto per i contenuti in angolare angolare-volantino-direttiva:

var html = '<br><span ng-class="thumbsUpClass(item)" ' + 
    'ng-click="addChoice(item,set)"><span class="popup-container"><span ' + 
    'class="icon-stack thumbs-up-stack"><i class="icon-sign-blank ' + 
    'icon-stack-base"></i><i class="icon-thumbs-up"></i></span></span></span>'; 

... 

$scope.markers.push({ lat: ..., 
         lng: ..., 
         message: html, 
         getMessageScope: function() { return $scope; },   
}); 
+0

Grande cattura! Mi chiedo perché non ci sia un esempio sul sito ... Tuttavia, 'compileMessage' potrebbe anche essere impostato su' true' nell'oggetto che si passa al metodo 'push' nell'ultima versione del plugin. Inoltre, questo funziona solo per i marcatori e non per i percorsi, ecc. – sibbl

Problemi correlati