类型错误:无法读取未定义的属性"childNodes"

Zee*_*Zee 12 twitter-bootstrap angularjs

我正在尝试在加载视图时显示模态.

代码:

//View
<div id="showCom" ng-controller="showmodalCtrl" ng-init="init()">

<div class="modal fade" id="companyModal" role="dialog">
 <div class="modal-dialog">
  <div class="modal-content">
    <div class="modal-header">
      <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
      <h4 class="modal-title">Please Select Company</h4>
    </div>
    <div class="modal-body">
     <form>
      <div class="form-group">
        <label class="control-label">Recipient:</label>
        <input type="text" class="form-control">
      </div>
     </form>
    </div>
    <div class="modal-footer">
      <button type="button" class="btn btn-primary">Submit</button>
    </div>
  </div>
 </div>
</div>
Run Code Online (Sandbox Code Playgroud)

//Controller
 .controller('showmodalCtrl', ['$scope', function($scope){

$scope.init = function(){
  $('#companyModal').modal("show");
}
 }])
Run Code Online (Sandbox Code Playgroud)

一切正常,显示模式,但我在控制台上收到此错误:

Type error : Cannot read property 'childNodes' of undefined
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样.此外,如果我从模态中删除"表单",我不会收到任何错误.所以我猜问题是表单,但我无法解决它.

提前致谢.

小智 49

我遇到了同样的问题,我设法通过将模态打开函数包装在$ timeout()或普通的setTimeout()函数中来解决它.

setTimeout(function(){
   jQuery('#messageModal').modal('show');
}, 0);
Run Code Online (Sandbox Code Playgroud)


Lau*_*ade 16

尝试使用JQuery插件时,我有相同的错误消息.文档就绪后运行它为我解决了问题.该插件运行正常,但当前范围内的角度代码不是.

这个线程的"设置超时" - 让我尝试这个解决方案.

我的解决方案:

angular.element(document).ready(function () {
    //Angular breaks if this is done earlier than document ready.
    setupSliderPlugin();
});
Run Code Online (Sandbox Code Playgroud)


Pet*_*ell 2

抱歉编辑。您的 HTML 格式正确吗?检查所有标签是否匹配。

在您的代码片段中,您似乎缺少一个结束 div。检查 - 关闭控制器 div 的那个。