Blaze完成渲染后

时间:2016-01-12 16:27:17

标签: javascript jquery meteor meteor-blaze materialize

在我的meteor应用程序中,我想用我的集合中的值预加载一个选择选项列表。

在我的模板中,我试过这个,这有效:

{{#each items}}
    <p>
        {{value}}
        {{title}}
    </p>
{{/each}}

以上代码仅代表实际代码的前期版本。 然后,我尝试了这个:

<select id="category">
    <option value="" disabled selected>Bitte wählen</option>
    {{#each items}}
      <option value="{{value}}" disabled selected>{{title}}</option>
    {{/each}}
</select>

不幸的是,它不会用任何数据填充列表。

我正在使用materialize作为UI框架,实现的目的是将select option呈现为ul li无序列表而不是渲染select option以使用户能够选择价值之间。选择选项列表必须初始化如下:

$(document).ready(function() {
  $('select').material_select();   
});

值得一提的是,$(document).ready()将在渲染内容之前完成大火。如何在完成大火完成选项列表的选项后强制执行材质初始化?

1 个答案:

答案 0 :(得分:2)

您在寻找的是onRendered方法

Template. category.onRendered(function(){
  //manipulate DOM here
});

有时您需要使用这样的超时。

Template. category.onRendered(function(){
      Meteor.setTimeout(function(){
        //Manipulate DOM here
        // this is most like a hack but it works some of the cases 
      },0);
    });