2015-01-30 6 views
4

Я хотел бы добавить комментарий HTML с интерполированным выражением в блоке ng-repeat. Однако, когда я пытаюсь это сделать, выражение не интерполируется. Например:Как я могу вставить комментарий HTML с помощью интерполированного выражения?

<tr ng-repeat="item in items" 
    <!-- ID that I don't want the user to see, but want for debugging = {{item.id}} --> 
    <td>{{item.prettyName}}</td> 
    <td>{{item.someProperty}}</td> 
    <td>{{item.someOtherProperty}}</td> 
</tr> 

Когда я просмотреть DOM (то есть вкладка Элементы в Chrom Devtools), я просто увидеть uninterpolated строку ("{{item.id}}") вместо того, чтобы интерполированное значение.

Какой здесь синтаксис?

+2

Что об использовании 'дисплей: none' или' нг-show'/'нг-hide' на' DIV 'или' span' или что-то еще? – ceejayoz

+0

Был ли мой ответ на ваш вопрос? –

+0

Да, спасибо - немного перебор, конечно, но очень полезно. Благодаря! – Jer

ответ

7

Это путь излишним, так как вы могли бы просто использовать предложения в комментариях display: none или подобное, но так же, как весело упражнение:

Синтаксис для вызова директивы на комментарий:

<!-- directive: foo expression --> 

Я надеялся, что что-то вроде ng-bind поддерживает комментарии, но это не так. Но вы можете легко создать свой собственный:

app.directive('comment', function($interpolate) { 
    return { 
    restrict: 'M', 
    scope: true, 
    link: function(scope, element, attrs) { 
     var comment = $interpolate(attrs.comment)(scope); 
     element.replaceWith("<!-- " + comment + "-->"); 
    } 
    }; 
}); 

И использование является:

<!-- directive: comment "something something {{item.id}}" --> 
Смежные вопросы