2014-09-15 2 views
1

Я хочу создать директиву (назовем ее «А»), которая принимает HTML-код для пересылки содержимого и модифицирует его завершенный контент, добавив на него ng-click обработчиков с использованием пользовательской логики.Где и как модифицировать переведенный контент?

Я думал, что предварительная ссылка будет хорошим местом для этого, но, видимо, я был очень не прав (кажется, что документы предлагают против него).

Каждая директива «А» примет свой (уникальный) контент, поэтому я не могу этого сделать на этапе компиляции.

В функции link я не уверен, что я могу сделать ...

Так, кто-нибудь сделал что-нибудь подобное?

EDIT:

Я забыл упомянуть об этом: обработчики для ngClick должны быть определены в рамках этой директивы, а не родительской области. Я не знаю, разрешает ли это Угловая, но это то, что мне нужно.

ответ

1

В вашем шаблоне вы должны добавить ng-transclude для элемента, который хотите добавить свой собственный html.

вашего использование директивы:

<attribute ng-click="clickMe()"> 
     <div> 
      transcluded data 
     </div> 
    </attribute > 

и в шаблоне:

<span ng-transclude> 
</span> 

Надеется, что это имеет смысл :)

+0

Но то, что я хочу, чтобы добавить 'нг-клик 'атрибуты на зашифрованном шаблоне с использованием JS-кода. Где вы это делаете? – user2173353

+0

проверьте это. http://plnkr.co/edit/ZD8xLh22dwlNAWjWk108?p=preview В противном случае вам нужно создать пример того, что вы имеете в виду. – Ngschumacher

+0

Я имею в виду добавить 'ng-click =" clickMe() "' код javascript, написанный в директиве, затем скомпилировать его и заставить его работать. Я также хочу использовать область директивы для некоторых операций 'ngClick'. Я думаю, что нашел решение в этих ссылках: http://stackoverflow.com/a/18157958/2173353 http://angular-tips.com/blog/2014/03/transclusion-and-scopes/ – user2173353

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