就绪函数指令应该只执行一次
Posted
技术标签:
【中文标题】就绪函数指令应该只执行一次【英文标题】:Directive on ready function should only execute once 【发布时间】:2016-08-15 16:40:15 【问题描述】:您好专家我有一个指令“我的表”,其中有一个用于编辑记录的按钮。 内部指令模板(html 文件)我有一个按钮
<a data-activates="editScreen" class="button-collapse">Edit
</a>
内部JS文件
angular.element(document).ready(function ()
$('.button-collapse').sideNav(
menuWidth: 450,
edge: 'right',
closeOnClick: true
);
)
我想在文档就绪功能上初始化 sideNav
问题是这个指令在循环中调用,每次指令调用这个代码都会产生问题。 (视图中的背景类太多,不会让侧导航按预期关闭)
我希望这段代码只执行一次。
我该如何解决这个问题。
提前致谢
【问题讨论】:
【参考方案1】:只需使用真正的指令,如下所示:
angular.module('[moduleName]').directive('buttonCollapse', function()
return
restrict:'C',
link:function(scope, element, attrs)
$(element).sideNav(
menuWidth: 450,
edge: 'right',
closeOnClick: true
);
)
【讨论】:
对不起,我无法理解。我怎么能用这个。你能解释一下吗? 我编辑是因为我忘记了.module
before .directive
。你在谈论一个指令,所以我为你做了一个符合你需要的指令。这将使所有具有类“button-collapse”的元素都被视为一个新的角度指令,并将按照链接函数中的说明进行处理。链接功能仅在创建元素时执行,因此不再存在多次执行的问题。
感谢您的回复。非常体面的解决方案。但唯一的问题是侧导航没有像之前那样在点击外部时接近。
还有像“parent”这样的属性吗?对于其中一些组件,您必须定义哪个 DOM 元素是父元素,以便在单击父元素外部时关闭,有时默认情况下父元素是 以上是关于就绪函数指令应该只执行一次的主要内容,如果未能解决你的问题,请参考以下文章