2013-02-10 19 views
12

Diciamo che ho:AngularJS element.innerHTML non è definito all'interno direttiva

directives.directive('foo', function() { 
    return { 
     restrict:'A', 
     scope: true, 
     link:function (scope, element, attr) { 

      console.log('innerHTML is ' + element.innerHTML); 

      scope.$watch('update', function (newValue) { 
       console.log('innerHTML is... ' + element.innerHTML); 
      }); 

     } 
    } 
}); 

... allora innerHTML non è definito. Immagino che ciò sia dovuto al modo in cui Angular elabora il DOM. Qual è il modo giusto per ottenere l'innerHTML?

risposta

34

La variabile element passata alla funzione link è un oggetto jqLite, non un oggetto DOM. È possibile ottenere l'oggetto DOM con element[0] (come si potrebbe in jQuery), ma jqLite fornisce un metodo per voi: element.html(). Controlla il docs.

+0

Grazie. Esattamente quello che mi mancava. –

Problemi correlati