繁体   English   中英

MeteorJS:模板助手更新后的回调

[英]MeteorJS: Callback after template helper was updated

我是Meteor.js的新手,所以希望这对我来说是无能为力而不是对平台的限制,因为它非常令人惊讶。

我想要实现的是非常简单的:每当模板助手使用新数据(但不是来自数据库!)时运行Javascript。

一个简单的示例场景可能是:用户请求获取一些图像。 但是,不是图像只是“弹出”,它们应该在它们满载之后被隐藏和淡化(除了定位它们等等)。

换句话说,在帮助程序接收到新数据之后,应该运行一个函数来对该数据执行某些操作(在实际呈现之前无法在服务器上完成)。

如果数据来自集合,则使用订阅回调很容易实现。

但是,一旦帮助程序呈现新数据,似乎没有回调。

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

我搜索了几十个看似相关的帖子,但是找不到任何可以被视为实现这个目标的“标准”方式......

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

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更改添加动画/转换支持( 此处引用

作为临时解决方案,您可以使用Blaze UI挂钩。 有很多包使用它们。 这里这里的例子

一般来说,Meteor方式是减少锅炉板代码的数量。 平滑过渡对于元素来说是一种模式而不是单独的事物,应该按照流星哲学来对待。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM