2016-05-13 2 views
1

Вот мой код: Я ожидаю, что для создания DIV с <textarea> или <ul> после scope.current.type из БД и установить scope.current.content в них.Мой заказ директива не работает

Но это не работает, на моей странице просто показать <contentDirective></contentDirective>

app.directive("contentDirective", function($compile) { 
    return { 
     restrict: 'E', 
     replace: true, 
     template: "<div class='new__content__input new__content__input-text'></div>", 
     link: function(scope, element, attrs) { 
      if (scope.current.type === 'Text') { 
       var DOM = "<textarea>" + scope.current.content + "</textarea>"; 
       element.append(node); 
      } else if (scope.current.type === 'Quote') { 
       var DOM = "<textarea>" + scope.current.content + "</textarea>"; 
       element.append(node); 

      } else if (scope.current.type === 'List') { 

       var ul = "<ul>"; 
       for (var i = 0; i < scope.current.content.length; i++) { 
        ul += "<li>" + scope.current.content[i] + "</li>"; 
       } 
       ul += "</ul>"; 
       element.append(ul); 
      } 
     } 
    }; 
}); 

И мой HTML:

<li ng-repeat="doc in who_u_r" ng-init=" current = doc " class="new__content__input__single clearfix"> 
    <contentDirective></contentDirective> 
<li> 

большое спасибо за помощь

ответ

1

Изменение этого, Угловые конвертирует camelCasing в змеиный кожух. В этом случае имя должно быть написано с помощью дефиса, и каждая тире представляет собой прописную букву из определения директивы.

<content-directive></content-directive> 
+0

Он работает, спасибо! У вас есть время, чтобы объяснить это? –

+0

Это довольно прямолинейно, директивы, созданные Angular, с верблюжью в Javascript, потому что вы не можете использовать дефисы в именах. В HTML, чтобы сохранить читаемость, они становятся разделенными пробелами. Поэтому 'myCustomDirective' в Javascript станет' ' – Jhecht

+0

Большое вам спасибо. Кажется, мне еще предстоит много работать. –

Смежные вопросы