Angularjs 如果在模板中使用ng show或ng init,则ngtransclude异常
每当我的指令模板包含ng show或ng init和ng transclude时,我都会得到以下javascript错误:TypeError:undefined不是一个函数 指令Angularjs 如果在模板中使用ng show或ng init,则ngtransclude异常,angularjs,angularjs-directive,Angularjs,Angularjs Directive,每当我的指令模板包含ng show或ng init和ng transclude时,我都会得到以下javascript错误:TypeError:undefined不是一个函数 指令 app.directive('test', function () { return { //works template: '<div><div ><ul><li ng-repeat="item in
app.directive('test', function () {
return {
//works
template: '<div><div ><ul><li ng-repeat="item in items"><div ng-transclude></div></li></ul></div></div>',
//does not work -- ucomment
//template: '<div><div ng-show="true"><ul><li ng-repeat="item in items"><div ng-transclude></div></li></ul></div></div>',
transclude:true,
link: function (scope, element, attrs) {
}
}
});
app.directive('test',function(){
返回{
//工作
模板:“
”,
//不起作用——ucomment
//模板:“
”,
是的,
链接:函数(范围、元素、属性){
}
}
});
用法
{{item.id}
你知道为什么会发生这种情况,解决办法是什么吗
问题的症结就在这里
若要查看其实际效果,请切换工作模板和非工作模板上的注释
$scope.items=[{id:1},{id:2},{id:3},{id:4}] 提示:不要将这些数据放在link fn中,因为链接是在应用模板之后发生的。现在可以了,但将来可能会有所帮助 我不知道如果模板已经显示,为什么要使用nh show?若您有一些显示/隐藏模板的切换函数,您可以使用它,但我认为默认情况下该模板是ng show=“true”
这只是我的想法。我根据你的建议更新了plunker,但仍然没有骰子。