0

У меня есть директива, которая переводит некоторый HTML, чтобы обеспечить контекстное меню faux. Использование как таковые:Transclude не интерполирует

<div id="my-element"> 
    My content 
    <context-menu get-offset="getOffset($event)"> 
     <ul> 
      <li> 
       <a href="" ng-click="action()">{{ label }}</a> 
      </li> 
     </ul> 
    </context-menu> 
</div> 

Это будет связать слушатель событий для #my-element, который на правой кнопке мыши покажет содержимое context-menu в зависимости от того, смещенного $scope.getOffset возвращается.

Все работает, за исключением интерполированной строки {{ label }} не расширена. Скажем, значение $scope.label равно 'ABC'. Вместо того, чтобы видеть «ABC», вы видите «{{label}}». Однако ngClick, похоже, правильно связан.

Пожалуйста, ознакомьтесь plunkr для кода & демо: http://plnkr.co/edit/QDVAHkhrfsNpRcjTwCpM?p=preview

Почему это?

ответ

3

События не вызывают цикл $ digest. Добавьте эту строку в конце showContextMenu():

transcludeScope.$digest(); 

(Вы можете вызвать его с помощью любой области, на самом деле)