Я использую angularjs с директивой ui_select2. Select2 рисует новые теги с функцией форматирования, есть элементы "" с атрибутом "ng-click". Как сообщить angularjs о новых элементах DOM? В противном случае новые «ng-клики» не будут работать.
HTML:
<input type="text" name="contact_ids" ui-select2="unit.participantsOptions" ng-model="unit.contactIds" />
JS (угловой контроллер):
anyFunction = function(id) {
console.log(id)
}
formatContactSelection = function(state) {
return "<a class=\"select2-search-choice-favorite\" tabindex=\"-1\" href=\"\" ng-click=\"anyFunction(state.id)\"></a>"
}
return $scope.unit.participantsOptions = {
tags: [],
formatSelection: formatContactSelection,
escapeMarkup: function(m) {
return m
},
ajax: {
url: '/contacts/search',
quietMillis: 100,
data: function(term, page) {
return {
term: term,
limit: 20,
page: page
}
},
results: function(data, page) {
return {
results: data,
more: (page * 10) < data.total
}
}
}
}
Проблема в том, что select2 создает элементы DOM, которые еще не обнаружены angularjs, я читал, что новые элементы DOM необходимо добавлять к какому-либо элементу с помощью функции angularjs $compile, но я не могу использовать ее в контроллере.