2016-06-23 18 views
0

Ich kann nicht $ kompilieren in meiner Direktive korrekt funktionieren. Ich versuche, HTML-Element mit ng-bind Direktive einfügen. Ich übergebe Variable vom Selektionsdienst an ng-bind.

Binding funktioniert nicht, wenn ich mein HTML anzeigen. Stattdessen bekomme ich ein leeres Element. Html nach dem Kompilieren sieht wie folgt aus:

<div class = "song_info ng-binding ng-scope" data-ng-bind = "year"></div>

dies ist die Richtlinie, die ich verwende:

.directive("sortableQueue", ["$compile", "selector", function($compile, selector){ 
    return{ 
     scope : {}, 
     link : function(scope, element){ 
      element.sortable({ 
       stop : function(event, ui){ 

        //get helper html 
        var song_element = $(ui.item); 

        //logs correct value 
        console.log(selector.getValue()); 

        var html = "<div class = 'song_info' data-ng-bind = '" + selector.getValue() + "'></div>"; 

        var content = $compile(html)(scope); 

        song_element.html(content); 
       } 
      }); 
     } 
    }; 
}]) 

Kennt jemand was Fehler bin ich hier machen? Jede Hilfe wird geschätzt.

Antwort

1

Alles funktioniert gut.

Antwort ist hier:

data-ng-bind = "year" 

Angular versucht Jahr Variable zu finden. Natürlich kann es es nicht finden und nichts anzeigen. Sie müssen in Ihrem Bereich eine Variable erstellen, von wo aus Daten abgerufen werden.

0

Sie verwenden einen isolierten Bereich, ich nehme an, dass Ihr variables Jahr im übergeordneten Bereich definiert ist. Versuchen Sie zu ersetzen:

scope : {}, 

von

scope: true, 
+0

es keine variable Jahr. Jahr ist der Wert der Variablen, die im Service Selector gespeichert ist. Ich versuche, Variable von diesem Service an HTML zu binden. Ich brauche keinen anderen Anwendungsbereich in dieser Richtlinie. – Palo

+0

■ sehe meine Antwort) – Vitalii