2

每当我的指令模板包含 ng-show 或 ng-init 和 ng-transclude 时,我都会收到以下 javascript 错误:TypeError: undefined is not a function

指示

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>

任何想法为什么会发生这种情况以及解决方法是什么?

问题的一个小问题就在这里。

要查看它的实际效果,请切换工作和不工作模板上的评论

http://plnkr.co/edit/AqyORo?p=preview

4

1 回答 1

0

$scope.items = [{ id: 1}, { id: 2 }, { id: 3 }, { id: 4 }];

提示:不要将该数据放在链接 fn 中,因为链接发生在应用模板之后。现在它有效,但也许它可以在未来有所帮助。

如果模板已经显示,我不知道你为什么要使用 nh-show ?如果您有一些显示/隐藏模板的切换功能,您可以使用它,但我认为该模板默认为 ng-show="true" 。

Thouse只是我的想法。

于 2013-09-04T19:11:07.070 回答