我将 angularjs 与“ui_select2”指令一起使用。Select2 绘制带有格式化功能的新标签,有带有“ng-click”属性的“”元素。如何告诉 angularjs 新的 DOM 元素?否则新的“ng-clicks”将不起作用。
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创建了angularjs尚未发现的DOM元素,我读到需要使用angularjs $compile函数将新的DOM元素附加到某个元素,但我不能在控制器中使用它。