2016-06-11 15 views
0

Mein Problem ist in der unten plnkrAngularJS kompilieren Funktion und isoliert Umfang

Plnkr

<ntimes repeat=10 > 
     <h1>Hello World - 10 {{smsg}}</h1> 
     <h4>More text</h4> 
    </ntimes> 
demonstriert

Richtlinie:

directive('ntimes', function() { 
return { 
    restrict: 'E', 
    scope:{ 
     smsg: '=' 
    }, 
    compile: function(tElement, attrs) { 
     var content = tElement.children(); 
     for (var i = 0; i < attrs.repeat - 1; i++) { 
      tElement.append(content.clone()); 
     } 
     tElement.replaceWith(tElement.children()); 

     return function(scope,elem,attr){ 
      scope.smsg='abc'; 
     } 
    } 
} 
}) 

Ich habe eine Kompilierung Funktion Link-Funktion zurückkehrt, und die Der Geltungsbereich der Richtlinie ist isoliert. Wenn ich die Bereichsvariable in der Verknüpfungsfunktion aktualisiere, gibt die Seite den aktualisierten Wert nicht wieder. Ich erwarte abc statt xyz.

Bitte helfen

Antwort

0

Bei der Verwendung von Zwei-Wege-Datenbindungs ​​Sie die Variablen sicherstellen müssen, dass ordnungsgemäß angeschlossen sind.

Dies bedeutet, dass Sie in Ihrer Direktive deklarieren, dass die Variable smsg scope mit anderen Daten verknüpft ist, die im DOM deklariert werden.

nun an der DOM dieses „link“ Suche fehlt die liefert Ihnen diese es error.To reparieren Sie Ihre HTML zu dieser <ntimes smsg="smsg" repeat=10 >

ändern müssen Und wenn Sie Ihren neuen SMSG tun, um ‚abc gleich ".

Verwandte Themen