【发布时间】:2019-04-04 17:14:31
【问题描述】:
在我的代码中,我创建了一个具有动态生成 ID 的元素。之后,我试图从我的控制器中填充相同的元素,但对于控制器来说,该元素似乎不存在。
以下是代码的相关部分:
(html)
<div class="pd_graph" ng-controller="pd.controller" id='cont-{{ my_context }}'>
</div>
(AngulaJS 控制器)
$scope.my_context = "test";
$('#cont-'+ $scope.my_context).html("<h2>Hello world</h2>");
我的预期结果是这样的:
<div class="pd_graph" ng-controller="pd.controller" id='cont-test'>
<h2>Hello world</h2>
</div>
有没有办法做到这一点?到目前为止,当我尝试访问 $('#cont-'+ $scope.my_context) 它根本不存在。
提前谢谢你!
【问题讨论】:
-
尝试使用
$timeout包装您的jQuery 代码。在 AngularJS 中使用 jQuery 进行 DOM 操作也是一个坏主意(没有充分的理由)。您应该使用具有 jQLite 的指令 -
设置变量后 DOM 不会立即呈现,请使用超时。
-
我已经尝试过 $timeout 选项。由于某种原因,它只是忽略了延迟并立即执行该功能。将调查指令的事情......
-
@AlekseySolovey 我做了,但没有帮助:(
-
我认为你应该用 Angular 创建这个元素,而不是 jQuery