我想在我的角度应用程序中使用此菜单 http://tympanus.net/Development/ResponsiveMultiLevelMenu/ 但我现在不知道如何调整角度jquery脚本我已经搜索过但没有任何对我有用的东西。我在像这样的指令中调用脚本
appDirectives.directive('menu-directive', function() {
return {
restrict: 'EA',
link: function ($scope, $elem, attrs) {
$( '#dl-menu' ).dlmenu();
}
};
});
但不适合我。
原始脚本是这个
<script>
$(function() {
$( '#dl-menu' ).dlmenu();
});
</script>
请帮助。
答案 0 :(得分:0)
如果要在具有该指令的元素中执行jQuery函数,则必须执行以下操作:
link: function ($scope, $elem, attrs) {
$elem.dlmenu();
}
编辑:我已编辑了代码
答案 1 :(得分:0)
默认情况下,angular使用名为jqlite的jquery版本,这里是文档enter link description here
此外,$ element对象已经是一个jquery对象,您应该能够操作该元素,并找到子节点,我们需要查看您的视图是如何定义的,以了解如何应用您的指令
答案 2 :(得分:0)
在角度准备好后初始化jquery插件。
appDirectives.directive('menu-directive', function($timeout) {
return {
restrict: 'EA',
link: function ($scope, $elem, attrs) {
$timeout(function() {
$('#dl-menu').dlmenu();
}, 0);
}
};
});
答案 3 :(得分:0)
编辑:在@CarlosMayo回答您的回答和您在回答中发布的现场演示之后:http://1stfold.com/taskbox/dev/POS/angular/#/app/scan/您似乎有点困惑。
您可以在.directive('menuDirective')
中实现您的指令,如下所示:
.directive('menu-directive')
不是
<menu-directive></menu-directive>
但是你在你的标记中使用它
<menuDirective></menuDirective>
NOT(你在演示中)
appDirectives.directive('menuDirective', function() {
return {
restrict: 'EA',
link: function ($scope, $elem, attrs) {
$elem.dlmenu();
}
};
});
Angular会将camelCase转换为破折号分隔字符串,以便在您的标记中使用。
您是如何实施指令的?我可能错了,但它认为您的名称格式不正确,因此您的指令未被应用,因此链接功能未被调用。
我相信角度使用驼峰的情况并将其转换为破折号的单词。
尝试以下方法:
<menu-directive></menu-directive>
<!--or-->
<div menu-directive></dive>
然后在你看来
{{1}}