2015-10-07 10 views
1

Я использую эту библиотеку https://github.com/tchatel/angular-treeRepeatКак настроен этот настраиваемый тег?

Итак, чтобы создать список узлов используются следующий синтаксис:

<li frang-tree-repeat="node in treeData> 

frang-tree-repeat является пользовательскими тегами и поэтому он должен быть настроен где-то в библиотеке?

Поиск src из https://github.com/tchatel/angular-treeRepeat Я не вижу ссылок на frang-tree-repeat, так как этот тег настроен или другими словами, как интерпретируется frang-tree-repeat?

+1

Это здесь https://github.com/tchatel/angular-treeRepeat/blob/master/app/js/directives.js#L18 Помните нормализовать имена директивы: frangTreeRepeat. – dfsq

+0

@dfsq так директива frangTreeRepeat читается как frang-Tree-Repeat на странице углового обзора? Является ли это вставка '-', чтобы прочитать директиву со страницы просмотра в качестве стандарта angularjs? –

+0

Прочтите мой ответ, я объяснил, почему эта нормализация необходима. – dfsq

ответ

1

Угловая нормализует директивы (оба атрибута и тега) имена от кебаба-case до camelCase. Это необходимо, так как имена тегов и атрибутов HTML лучше записываются в кебаб-случае (потому что имена не чувствительны к регистру в HTML), в то время как имена Javascript kebab-case не будут действительными идентификаторами и не могут использоваться для имен директив (ну, они могут, но это потребует дополнительной упаковки в кавычки).

Именно по этой причине вам необходимо выполнить нормализацию из HTML-обозначений в JS. Угловое имеет $normalize сервис, который используется для этого. Это значит, что если в HTML есть frang-tree-repeat, он будет переведен на frangTreeRepeat в Javascript.

В вашем случае, ваша директива здесь: https://github.com/tchatel/angular-treeRepeat/blob/master/app/js/directives.js#L18

0

frang-tree-repeat обычай directive, который определен в модуле app.directives в угловом-treeRepeat. Как отметил @dfsq, его реализация может быть найдена here.

Обратите внимание, что она требует frangtree в определении require: ^frangTree:

Когда директива использует эту опцию, $compile выдаст ошибку, если указанный контроллер не найден. Приставка ^ означает, что эта директива ищет контроллера на своих родителей (без префикса ^, то директива будет искать контроллера только на своем собственном элементе).

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

  • Нет связанных вопросов^_^