gpt4 book ai didi

javascript - 应该在渲染 View 后运行的代码放在哪里?

转载 作者:行者123 更新时间:2023-11-30 16:38:19 25 4
gpt4 key购买 nike

编辑:实际上,这不是重复的。我问的是如何在动态 DOM 可用时运行代码,而不是静态 DOM:

enter image description here

因为我的 textarea 位于 ngRepeat 中,所以它们在静态 DOM 中不可用。


我正在使用 autosize在 Angular 应用程序中。我试图在我的 Controller 开始时像这样调用 autosize:

autosize(document.getElementsByTagName('textarea'));

它不起作用,大概是因为在调用函数时,document.getElementsByTagName 是空的。

所以我需要在呈现 DOM 元素后 调用该函数。我该怎么做?

注意:我也试过将它放在 run block 中,但这也没有用。

最佳答案

这是通常被描述为“所有 DOM 内容都交给指令”的实例。将第三方代码与 Angular 数据绑定(bind)集成将需要一些额外的措施,但只是为了初始化就这么简单:

app.directive('textarea', function ($timeout) {
return {
restrict: 'E',
link: function (scope, element) {
$timeout(function () {
autosize(element[0]);
});
}
};
});

$timeout 零延迟确保代码在 DOM 以初始状态呈现后运行(ng-repeat 尤其如此)。

关于javascript - 应该在渲染 View 后运行的代码放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32379951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com