Angular没有从指令调用链接函数

时间:2015-10-01 19:34:29

标签: javascript html angularjs

我正在与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模板部分工作正常,但链接函数永远不会运行。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

也许这只是你在stackoverflow中所做的错误,但你错过了一个角色:

<div class="col-sm-8"> <!-- Missing ">" -->

答案 1 :(得分:1)

  

但链接功能永远不会运行

也许,通过将您的链接功能放在glocal范围内,它将被重写(?)。

尝试在指令定义中移动链接功能。

答案 2 :(得分:0)

这个答案很有启发性。另一位开发人员之前曾尝试将供应商的示例应用程序迁移到我们的应用程序中。他留下了一个指令和一个链接功能,其名称与我试图使用的相同。取出第二个指令和第二个链接功能完成了任务。感谢所有人的帮助。