2016-07-04 4 views
0

Я пытаюсь что-то с атрибутом вместо элемента в пользовательской директиве.угловая директива с использованием атрибута cant get element inner html

<div dotdot>{{description}}</div> 

Я создал 'dotdot', чтобы проверить длину описания.

код ниже:

.directive('dotdot', function(){ 
    return { 
     restrict: 'A', 
     transclude: true, 
     replace: true, 
     scope:true, 
     link:function(scope,ele,attr){ 
      console.log(ele[0].innerHTML);// shows blank 
      console.log(ele.html());  // shows blank       
     } 
    } 
}) 

Я не подвожу ничего консоли (console.log (Ele [0] .innerHTML)) как я хочу длину текстового контента для дальнейшей работы.

+0

Мне нужно проверить, есть ли что-нибудь, что могло бы запустить вышеуказанный код? Я имею в виду использование атрибута и не использование элемента? –

ответ

0

Прежде всего, вы ограничиваете свою директиву «E» (E обозначает элемент). Это означает, что будет работать только <dotdot>{{ description }}</dotdot>. Ваш предоставленный HTML отображает dotdot как атрибут. Таким образом, restrict: 'E' должен быть resrict: 'A' (А означает Атрибут).

Во-вторых, почему вы не передаете значение описания директиве через ее область? Что-то вдоль линий <div dotdot="description"></div>. Было бы легче изменить $watch и действовать соответствующим образом. Кроме того, если вы сохраните свой код в функции ссылок, например, это может быть изменение, ваш console.log выведет {{description}}, потому что цикл дайджеста еще не запущен. (это не то, что вы хотите).