我有一个带有 Angular-UI Modal 的 AngularJS 应用程序。我想从 Controller 中检索在模态 HTML 中定义的 DOM 元素,但它返回了 undefined
。
我在 Plunker ( http://plnkr.co/edit/eoOuJiVaYASH1jMO8t2q?p=preview) 中上传了我的代码。
在 ModalInstanceCtrl
Controller 中,如果我尝试检索模态模板中定义的元素 myElem
,它会给我一个未定义的异常,如下所示,但如果我评论 var elem = $document.getElementById('myElem');
。
TypeError: undefined is not a function at new (http://run.plnkr.co/K8SndGsk5DANhGl2/:36:28) at invoke (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.js:3918:17) at Object.instantiate (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.js:3929:23) at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.js:7216:28 at resolveSuccess (http://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.10.0/ui-bootstrap-tpls.js:1710:32) at wrappedCallback (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.js:11498:81) at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.js:11584:26 at Scope.$eval (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.js:12608:28) at Scope.$digest (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.js:12420:31) at Scope.$apply (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.js:12712:24)
我在下面的代码中遗漏了什么吗?
谢谢,
最佳答案
正如您所说,DOM 是在 Controller 执行后构建的。尝试将 $timeout 注入(inject)模态 Controller 并将 $timeout 设置为 0。
关于angularjs - 无法从 Angular UI 模式中的 id 获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25840887/