Я создаю директиву, которая генерирует кнопки Twitter. Поскольку переменные области действия на этих кнопках могут измениться, мне нужно перестроить кнопку, когда это произойдет. В настоящее время я использую jQuery для empty()
связанного элемента и перестраиваю кнопку.
app.directive 'twitterShare', ($timeout, $window) ->
restrict: 'E'
template: '<a href="#" onclick="location.href='https://twitter.com/share'; return false;" class="twitter-share-button" data-text="{{ text }}" data-url="{{ url }}">Twitter</a>'
scope:
text: '@'
url: '@'
link: (scope, el, attrs) ->
scope.$watch 'text', -> rebuild()
scope.$watch 'url' , -> rebuild()
rebuild = ->
$(".twitter-share-button").remove()
tweet = $ '<a>'
.attr 'href', 'https://twitter.com/share'
.attr 'id', 'tweet'
.attr 'class', 'twitter-share-button'
.attr 'data-lang', 'en'
.attr 'data-count', 'none'
.text 'Tweet'
el.prepend tweet
tweet.attr 'data-text', scope.text
tweet.attr 'data-url', scope.url
$window.twttr.widgets.load()
Есть ли способ заставить директиву полностью повторно отобразить шаблон?