Angular не вызывает функцию ссылки из директивы

0

Я работаю с Leadtools по проекту. Их поддержка помогла мне перенести их просмотрщика документов на angular.js. Их образец - это просто страница index.html с вызовом двух директив: list и documentviewer. Я взял этот код и изменил его, чтобы код в index.html теперь был частичным, а директивы я оставил один. Вот код директивы, который они мне дали:

JBenchApp.directive("documentviewer", function () {
    return {        
        //templateUrl: "views/docviewer.html" //"<div id='documentviewerdiv'></div>",
        template: ' <div id="container"> ' +
        '<div id="top-panel">' +
        '<label for="interactiveSelect">Interactive mode:</label>' +
        '<select id="interactiveSelect"></select>' +
        '</div>' +
        '<div>' +
        '   <div id="left-panel"></div>' +
        '  <div id="middle-panel"></div>' +
        '<div id="right-panel">For bookmarks</div>' +
        '</div>' +
        '</div>',
    restrict: 'E',
        link: link
    };

});

JBenchApp.directive('list', function () {
    return {
        templateUrl: 'partials/list.html'
    };
});

function link(scope, element, attrs) {

  //This code handles displaying the documents. I've removed it as it isn't relevant to the question
};

Эта функция связи никогда не вызывается. Он работает в демо, но не здесь. Вот код для частичного:

<div class="row">

   <div class="col-sm-3">

        <list>
            {{ listItems }}
        </list>
   </div>
   <div class="col-sm-8">
      <section  ng-app="JBenchApp"> 
            <documentviewer></documentviewer>
      </section>        
   </div>

</div>

Вызывается директива documentviewer, и часть шаблона HTML отлично работает, но функция ссылки просто не запускается. Есть идеи?

  • 0
    Это прекрасно работает со мной, см. Пример
  • 0
    @sniels Я вижу, что вы объявили свою директиву по-другому. Я также изменил свою директиву, чтобы ссылка теперь выглядела следующим образом: link: function(){ alert('link fired'); } Ничего не горит
Показать ещё 1 комментарий

3 ответа

0
Лучший ответ

Ответ на это был поучительным. Еще один разработчик ранее попытался перенести приложение-образец поставщика в наше приложение. Он оставил директиву и функцию связи, которые были названы идентичными тем, которые я пытался использовать. Выполнение этой задачи выполнялось второй директивой и второй функцией связи. Спасибо всем за помощь.

1

Возможно, это опечатка, которую вы сделали только здесь, в stackoverflow, но вам не хватает персонажа:

<div class="col-sm-8"> <!-- Missing ">" -->
  • 0
    спасибо, но это была просто опечатка здесь. Я исправляю это сейчас.
1

но функция ссылки просто никогда не запускается

Возможно, поместив ваш funciton в glocal scope, он переписывается (?).

Попытайтесь переместить свой функционал ссылок внутри определения вашей директивы.

  • 0
    Я, вероятно, собираюсь попробовать это, но одна вещь, которая не имеет смысла для меня, - то, что это работает в их демонстрации, и код - то же самое.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню