2014-05-27 1 views
3

У меня есть шаблон HTML, как это:нг-клик не будет работать с нг-Bind-HTML

$scope.template = '<span class="pointer"><i class="icon-refresh pointer" ng-click="refresh()"></i></span>'; 

Я хочу, чтобы связать этот шаблон с помощью ng-bind-html, я пытался использовать его, а также я использовал ng-bind-html-unsafe, но, к сожалению, он связывает строку html так же, как и без действия клика.

<span ng-bind-html="template"></span> 
<span ng-bind-html-unsafe="template"></span> 

Я читал о подобной проблеме, и он сказал, что ng-click загружается после ng-bind, так может кто-нибудь представить мне, как решить эту проблему?

+1

Факт Угловой делает это настолько трудным для этого, что он точно подчеркивает * почему * вы не должны этого делать. HTML не принадлежит контроллеру. Вытяните его через View – CodingIntrigue

+0

Зачем вам нужен шаблон в переменной JS? – gkalpak

+0

В проекте, над которым я работаю, мне нужно привязать шаблоны к под-представлениям в главном представлении, поэтому мне нужно скомпоновать шаблон в требуемой панели (под просмотр) со своими функциями. – phikry

ответ

1

Вы можете попробовать ng-include и вместо этого вставить свой шаблон в статический файл.

Полагаю, что размещение HTML-контента в переменных области, по-видимому, противоречит некоторым принципам угловой философии.

Если бы вы позже изменили шаблон, хотите ли вы, чтобы он перепрофилировал себя и снова обрабатывался?

1

Возможно, вам нужно скомпилировать шаблон внутри контроллера?

angular.controller('ABCDCtrl', function($scope, $compile){ 
    var templateHTML = '<span class="pointer"><i class="icon-refresh pointer" ng-click="refresh()"></i></span>'; 
    $scope.template = $compile(templateHTML)($scope); 
}); 
Смежные вопросы