0

大家。

我在个人项目中使用 Meteor,我无法对这个项目做一些非常重要的事情:我需要在运行时创建 DOM 的某些部分,然后仍在运行时填充它们,但是使用 Tamplates 方法我无法完成这项工作. 也许我做错了什么。请看一下这个例子并说出问题所在或者是否有更好的方法来做到这一点。

考虑以下示例情况:

<template name = "exampleTemplate">
    <div class="divToPopulate">
        {{#each topModels}}
            <div id="{{_id}}"></div>
        {{/each}}
    </div>
</template>

然后,在client.js中,我为topModels助手提供数据:

Template.exampleTemplate.topModels = function() {
    return ExampleModel.find({},{limit:9});
}

当模板准备好后,我尝试在一个名为drawGraph(var domElementId)的 javascript 函数中使用这些 DOM 元素,该函数是一个 Raphael.js 函数,它在 DIV 内绘制一个图形:

Template.exampleTemplate.rendered = function() {
    var models = ExampleModel.find({},{limit:9});
    models.forEach(function(model){
        drawGraph(model._id);
    });
}

但是当我运行它时,我得到一个错误,说 DOM 元素不存在。所以我想知道是否有更好的方法来附加 DOM 元素并动态填充它。

谢谢你的帮助。

4

0 回答 0