2013-02-10 22 views
12

Hãy nói rằng tôi có:AngularJS element.innerHTML là undefined từ bên trong chỉ thị

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); 
      }); 

     } 
    } 
}); 

... sau đó innerHTML là undefined. Tôi tưởng tượng điều này là do cách mà Angular xử lý DOM. Cách đúng để có được innerHTML là gì?

Trả lời

34

Biến số element được chuyển đến hàm link của bạn là đối tượng jqLite - không phải đối tượng DOM. Bạn có thể lấy đối tượng DOM với element[0] (giống như bạn có thể trong jQuery), nhưng jqLite cung cấp một phương thức cho bạn: element.html(). Hãy xem docs.

+0

Cảm ơn bạn. Chính xác những gì tôi đã mất tích. –