数据表在meteorjs中没有更新

时间:2013-12-06 15:23:16

标签: meteor datatables jquery-datatables meteorite

我正在使用meteorjs处理应用程序。我对流星来说是全新的。在我的应用程序中,我使用带有流星的dataTables进行缩短,分页和搜索 这是我的模板代码

<template name="questions">
    <div class="col-md-3">
        {{#constant}}
        <table class="table table-striped table-bordered table-condensed table-hover listing"
               id="content_listing-table">
            <thead>
            <tr>
                <th>Questions</th>
            </tr>
            </thead>
            <tbody>
            {{#each questions}}
            <tr>
                <td>
                    <a href="#" data-id={{_id}} class="edit"> {{questionSubString question_text}}</a>
                </td>
            </tr>
            {{/each}}     
           </tbody>
        </table>
        {{/constant}}
    </div>
</template>

我的流星代码是

Template.questions.rendered = function () {
$("#content_listing-table").dataTable();
}

Template.questions.questions = function () {    
return Meteor.questions.find({topic_id: Session.get("currentTopicId")})

}

我的问题是当我向数据库添加一个问题时,它似乎不在模板上。并生成一个例外。我知道这是因为数据表。文档更新时,数据表不会更新。我尝试了很多来自stackoverflow的例子,但无法摆脱这个问题。我尝试通过动态追加行但它总是给我一个警告。它似乎没有做正确的方法。我可以动态地从元素中删除数据表吗?帮助将不胜感激 编辑:

 $('#content_listing-table').dataTable().fnClearTable();
 $('#content_listing-table').dataTable().fnAddData(Meteor.questions.find().fetch());

我试图先将表格清空,然后再将数据添加到表格中。但是这里是因为没有再添加数据而清空表格。

1 个答案:

答案 0 :(得分:1)

您正在使用{{constant}}区域。这会禁用模板中该部分的反应性。

尝试摆脱你的恒定区域并使用meteor --release template-engine-preview-5.5运行流星。这将使用新的,进行中的模板引擎Meteor UI运行meteor。 Meteor UI中没有constantpreserve - 它足够聪明,可以在细粒度级别上进行DOM更改,因此它应该与jQuery插件等开箱即用。