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依赖项