gpt4 book ai didi

meteor - 渲染 meteor 模板后运行 JS

转载 作者:行者123 更新时间:2023-12-03 23:16:40 25 4
gpt4 key购买 nike

我有一个看起来像这样的模板:

<template name="foo">
<textarea name="text">{{contents}}</textarea>
</template>

我渲染它:
Template.foo = function() {
return Foos.find();
}

我有一些事件处理程序:
Template.foo.events = {
'blur textarea': blurHandler
}

我想做的是设置 rows textarea 的属性取决于其内容的大小。我意识到我可以编写一个 Handlebars 助手,但它无法访问正在呈现的 DOM 元素,这将迫使我进行一些不必要的复制。理想情况下,我想要的是 meteor 在呈现元素后触发事件。就像是:
Template.foo.events = {
'render textarea': sizeTextarea
}

这可能吗?

最佳答案

我认为当前的“最佳”方法(有点黑客)是使用 Meteor.defer阿拉Callback after the DOM was updated in Meteor.js .

Geoff 是 meteor 开发者之一,所以他的话是福音:)

因此,在您的情况下,您可以执行以下操作:

 <textarea id="{{attach_textarea}}">....</textarea>


 Template.foo.attach_textarea = function() {
if (!this.uuid) this.uuid = Meteor.uuid();

Meteor.defer(function() {
$('#' + this.uuid).whatever();
});

return this.uuid;
}

编辑

请注意,作为 0.4.0,您可以以一种非常特别的方式执行此操作(如 Sander 所指出的):
Template.foo.rendered = function() {
$(this.find('textarea')).whatever();
}

关于meteor - 渲染 meteor 模板后运行 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11022131/

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