gpt4 book ai didi

javascript - meteor JS : Callback after template helper was updated

转载 作者:行者123 更新时间:2023-12-04 19:48:30 24 4
gpt4 key购买 nike

我是 Meteor.js 的新手,所以希望这是我的无能,而不是平台的限制,否则它会非常棒。

我想要实现的目标非常简单:只要模板助手更新了新数据(但不是来自数据库!),就运行 Javascript。

一个简单的示例场景可能是这样的:用户请求获取一些图像。但是,图片不应只是“弹出”,它们应该在完全加载后隐藏并淡入(除了定位它们等其他事项外)。

换句话说,在 helper 收到新数据后,应该立即运行一个函数来处理该数据(在实际呈现之前不能在服务器上完成)。

如果数据来自集合,则通过订阅回调很容易实现这一点。

但是,一旦 helper 呈现了新数据,似乎就没有回调。

是的,可以添加几毫秒的超时,但在我看来这不是一个干净或可靠的解决方案,因为您显然永远不知道它需要渲染多长时间。

我已经搜索了数十篇看似相关的帖子,但没有找到任何可以被视为实现此目标的“标准”方法...

这里有一些(简化的)示例代码来说明该场景:

var images = [];


//When showImages is updated with new data from the images array...
Template.gallery.helpers({

showImages: function () {
return images;
}
});

//...this function should fire
function doMagicWork () {
...
}


//Because firing it on the on click event would be too soon,
//as the helper hasn't rendered yet
Template.gallery.events({

"click #fetch_images": function (event) {

Meteor.call("getImagesFromServer", function(error, result) {

images = result.content;

});
}
});

最佳答案

有一个待定的功能可以为 UI 更改添加动画/过渡支持 (referenced here)

作为临时解决方案,您可以使用 Blaze UI Hook 。有很多包使用它们。示例 herehere

总的来说,Meteor 的方式是减少样板代码的数量。平滑过渡是一种模式,而不是元素的个别事物,应该按照 meteor 哲学来对待。

关于javascript - meteor JS : Callback after template helper was updated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30717851/

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