【发布时间】:2014-10-31 12:08:01
【问题描述】:
在我的 Meteor 应用程序中,我已成功发布数据服务器端并订阅了该数据客户端。现在,我不想将原始数据直接推送到客户端屏幕,而是将其存储为 javascript 对象,对其执行一些计算(数字运算),并将结果呈现在客户端屏幕上(在 HTML5 画布元素中)。每次更新 Mongo 时,应该重新运行 javascript 代码(即重新设置 js 对象,从该对象再次执行计算,并将新结果呈现在画布上)。
我可以使用 Template.example.helpers 块获取 Mongo 数据,并在客户端中直接显示如下:
Meteor.subscribe('collection','query');
Template.example.helpers({
sampleData: function(){
return Collection.findOne({query:`query`});
}
});
<template name="example">
<div>
{{sampleData.last}}
</div>
<canvas id="test-canvas"></canvas>
</template>
但我想做的是在推送到客户端屏幕之前抓住这些数据,在Template.example.rendered 块内:
Meteor.subscribe('collection','query');
Template.example.rendered = function(){
// define HTML5 canvas and context variables
var canvas = $("#test-canvas")[0];
var context = canvas.getContext("2d");
// store Mongo data as Javascript variable
// loop over this variable and perform calculations
// draw results to the canvas
}
我是否以正确的方式处理这个问题?如果是这样,我该如何实现?谢谢!
【问题讨论】:
标签: javascript html mongodb canvas meteor