Angularjs 角度指令,typeError undefined不是函数

Angularjs 角度指令,typeError undefined不是函数,angularjs,types,undefined,directive,Angularjs,Types,Undefined,Directive,我对两个指令有问题: 滚动条: directive("slimScroll", [ function() { return { link: function(scope, ele, attrs) { return ele.slimScroll({ height: attrs.scrollHeight || "100%" });

我对两个指令有问题:

滚动条:

directive("slimScroll", [
    function() {
        return {
            link: function(scope, ele, attrs) {
                return ele.slimScroll({
                    height: attrs.scrollHeight || "100%"
                });
            }
        };
    }
给我以下错误:

TypeError:undefined不是link()上的函数。

引用的行是: 返回ele.slimScroll({

本指令:

.directive("collapseNav", [
    function() {
        return {
            link: function(scope, ele) {
                var $a, $aRest, $lists, $listsRest, app;
                return $lists = ele.find("ul").parent("li"),
                    $lists.append('<i class="fa fa-arrow-circle-o-right icon-has-ul"></i>'),
                    $a = $lists.children("a"),
                    $listsRest = ele.children("li").not($lists),
                    $aRest = $listsRest.children("a"),
                    app = $("#app"),
                    $a.on("click", function(event) {
                        var $parent, $this;
                        return app.hasClass("nav-min") ? !1 : ($this = $(this),
                            $parent = $this.parent("li"),
                            $lists.not($parent).removeClass("open").find("ul").slideUp(),
                            $parent.toggleClass("open").find("ul").stop().slideToggle(), event.preventDefault());
                    }), $aRest.on("click", function() {
                    return $lists.removeClass("open").find("ul").slideUp();
                }), scope.$on("minNav:enabled", function() {
                    return $lists.removeClass("open").find("ul").slideUp();
                });
            }
        };
    }
])
指令(“collapseNav”[
函数(){
返回{
链接:功能(范围、要素){
var$a、$aRest、$lists、$listsRest、app;
return$lists=ele.find(“ul”).parent(“li”),
$lists.append(“”),
$a=$lists.children(“a”),
$listsRest=ele.children(“li”)。而非($lists),
$aRest=$listsRest.children(“a”),
app=$(“#app”),
$a.on(“点击”),功能(事件){
var$parent$this;
返回应用程序hasClass(“nav min”)?!1:($this=$(this),
$parent=$this.parent(“li”),
$lists.not($parent).removeClass(“open”).find(“ul”).slideUp(),
$parent.toggleClass(“open”).find(“ul”).stop().slideToggle(),event.preventDefault());
}),$aRest.on(“单击”,函数(){
return$lists.removeClass(“open”).find(“ul”).slideUp();
}),作用域.$on(“minNav:enabled”,函数(){
return$lists.removeClass(“open”).find(“ul”).slideUp();
});
}
};
}
])
给了我这个错误 TypeError:undefined不是函数 at link()


引用的行是:$listsRest=ele.children(“li”)。而不是($lists),

当您在指令中引用链接函数的第二个参数时(在您的例子中是
ele
),您没有引用元素的完整jQuery对象引用。带的角度束,这意味着只有一些jQuery方法可用

在您的两个案例中,这意味着:

  • slimScroll
    是一个jQuery插件,不会自动注册到jqLite
  • .not()
    在jqLite中不可用

  • 如果您想要完全支持jQuery,您必须将其包含在应用程序中,然后通过执行
    jQuery(ele[0])
    创建一个真正的jQuery对象。ele[0]引用本机DOM元素,该元素适合创建jQuery元素。

    我已经准备好加载slimscroll依赖项