每当我的指令模板包含ng-show或ng-init和ng-transclude时,我都会收到以下javascript错误:TypeError:undefined不是函数
指令
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) {
}
}
});
用法
<div test>
<div>{{item.id}}</div>
</div>
任何想法为什么会发生这种情况以及解决方法是什么?
问题的关键在这里。
要查看它在操作中切换关于工作模板和非工作模板的评论
答案 0 :(得分:0)
$ scope.items = [{id:1},{id:2},{id:3},{id:4}];
提示:不要将这些数据放在链接fn中,因为在应用模板后会发生链接。现在它可行,但也许它可以在将来有用。
我不知道为什么你会使用nh-show,如果模板已经显示?你可以使用它,如果你有一些显示/隐藏模板的切换功能,但我认为该模板默认为ng-show =“true”。
Thouse只是我的想法。