javascript - 插件在指令中被调用了数百次

标签 javascript angularjs angularjs-directive

app.directive('tooltip_plugin_as_example', function() {
  return {
    restrict: 'A',
    link: function(scope, element, attrs) {
       $(element).tooltip();
       console.log("this is called");
    }
  };
});

<div class="someclass">
    <ul>
        <li tooltip_plugin_as_example ng-repeat="item in iCtrl">{{item.name}}</li>
    </ul>
</div>

这被调用 在单击新选项卡并加载新页面时会发生数百次。我希望它只发生一次,理想情况下,在加载最后一个项目时发生。是否可以?我正在考虑设置间隔,例如每秒调用一次这个插件,但显然,这将是一个可怕的做法......

最佳答案

您没有对任何 dom 事件采取行动,因此“this is called”将记录存在的每个实例。

也许试试这个,它只会在点击指令时运行。

app.directive('tooltip_plugin_as_example', function() {
  return {
    restrict: 'A',
    link: function(scope, element, attrs) {
       element.bind('click',function(){
       //your code
      });

    }
  };
});

如果我误解了,你能用 jsfiddle 提供更好的解释吗?

关于javascript - 插件在指令中被调用了数百次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25271952/

相关文章:

javascript - Node.js + Express 最简单的 SPA 示例

javascript - 不使用 eval() 计算字符串

angularjs-directive - Jasmine 测试中角度元素的调度事件不起作用

AngularJs 两种方式绑定(bind)不适用于 Jquery 插件

javascript - AngularJS - 检索评估的属性

javascript - 如何将 2 个 Javascript 函数合并为一个?

javascript - Angularjs 1.5 : replace component tag with html tag

javascript - 使用具有多个 url 和可选参数的 express.Router()

ajax - HTTP 请求/响应问题

javascript - 需要帮助使用 javascript 进行登录验证