angular prepend`TypeError:无法读取undefined`的属性'childNodes'

时间:2015-05-19 23:17:39

标签: javascript angularjs

前言

出于学习目的,我想创建一个可以与简单标记一起使用的tabs指令(基于自定义元素,没有ng-click等,自动生成的选项卡导航)。

问题

基本设置或多或少都很简单并且工作正常,但有一个例外:当我想预置使用.prepend(...)自动创建的标签导航时,我会得到抛出错误TypeError: Cannot read property 'childNodes' of undefined

有点连线:导航按预期生成并预先添加。

甚至更有线:使用.append(..)工作正常 - 没有错误。

所以这就是我所做的

  1. 通过.run在指令中创建一个模板并将其添加到模板缓存中(我希望将所有需要的代码放在一个文件中 - 请不要为此而打我
  2. 从导航模板
  3. 所需的标记中收集所有标签数据
  4. 编译模板
  5. 将其添加到指令元素
  6. 这就是编译和前缀代码的样子

    (没什么特别的,我猜)

    // create and prepend the navigation
    var $template = angular.element($templateCache.get('tabs/templates/tabNav.html'));
    var $nav = $compile($template)($scope);
    
    // throws error on local setup
    // TypeError: Cannot read property 'childNodes' of undefined
    $element.prepend($nav);
    

    整个设置请参阅http://plnkr.co/edit/yyTCoPQd4ld3w7kDDFCS?p=preview

    虽然我尝试使用plunkr重现错误(只是将整个shebang复制到那里),但错误没有出现 - 这对我更有帮助。

    我的设置

    • yo angular
    • angular 1.3.15

    如果我错过了任何必要的信息,请告诉我 - 我真的很感激任何帮助我解决这个问题的提示。

    提前感谢。

0 个答案:

没有答案