将随机定位的图像保持在Meteor + Handlebars中的恒定位置。可能{{#constant}}问题

时间:2013-12-18 23:33:59

标签: meteor handlebars.js

我在使用Meteor(和Handlebars)时将一些随机放置的图像(比如气球)保持在恒定位置时遇到了一些麻烦。

图像使用以下方法正确随机化位置:

Template.main.random = function(from,to) {
return Math.floor(Math.random()*(to-from+1)+from);
},

和html:

{{#each images user.balloons}}
    {{#constant}}
        <img class="itemimage" src="{{url}}" style="margin-left:{{random 1 200}}px; margin-top:{{random 1 100}}px;">
    {{/constant}}
{{/each}}

然而{{#consant}}并不像我希望的那样有效;图像每次更新都会收到新的随机边距,因此它们会在整个节目中跳过!有没有办法阻止他们更新?我错误地使用{{#constant}}吗?

非常感谢任何帮助!这是我的第一个项目,并且进展顺利,所以我热衷于保持势头。

谢谢!

编辑:快速说明,当我尝试在{{#each}}之外移动{{#constant}}时,图片根本没有显示,所以不行。

1 个答案:

答案 0 :(得分:0)

不幸的是,正如文档中所述:

  

常量区域用于嵌入非Meteor内容。事件处理程序和反应依赖项目前在常量区域内无法正常工作。

我建议写一些函数,它产生一个适当大小的随机坐标数组,然后在客户端代码中首先运行它,并将结果存储在一个普通的javascript变量中。然后,只需在您渲染气球的模板中添加一个帮助器,为每个气球提供相关坐标。除非用户进行了大量的刷新,否则应该将它们保留在原位。