AngularJS: забавная особенность bindonce

05 Jun 2014

Для AngularJS существует модуль bindonce, который позволяет сократить количество вотчеров и тем самым ускорить страинцу.

У этого модуля есть директива bo-attr, которая позволяет использовать в качестве атрибута элемента любое нужное нам значение. В качестве значения выступает выражение, которое будет проинтерпретировано и добавлено в dom.

Однако, у этой директивы есть забавное поведение, которое связано с особенностями интерпретации.

$scope.title = 'some text with $peci@l chars'  
$scope.title\_ref = 'title'  
$scope.title\_title\_ref = 'title\_ref'
\<a bo-attr="" bo-attr-title="title"\>anchor1\</a\>  
\<a bo-attr="" bo-attr-title=""\>anchor2\</a\>  
\<a bo-attr="" bo-attr-title="''"\>anchor3\</a\>  
\<a bo-attr="" bo-attr-title=""\>anchor4\</a\>

Как думаете, что выведется в каждом случае? :)

Фидл с примером.