Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor:使用mongo集合中的对象填充表单选择_Meteor - Fatal编程技术网

Meteor:使用mongo集合中的对象填充表单选择

Meteor:使用mongo集合中的对象填充表单选择,meteor,Meteor,我正在尝试制作一个包含选择下拉菜单的表单页面。我希望选择选项来自集合,而不是手动在HTML中键入它们。到目前为止没有运气。这是我的代码: html: <template name="addPage"> <div id="addForm"> <form> <ul> <li> <label>Select a g

我正在尝试制作一个包含选择下拉菜单的表单页面。我希望选择选项来自集合,而不是手动在HTML中键入它们。到目前为止没有运气。这是我的代码:

html:

<template name="addPage">
    <div id="addForm">
        <form>
            <ul>
                <li>
                    <label>Select a genre:</label>
                    <select id = "genreList">
                        {{#each genres}}
                            {{> genre}}
                        {{/each}}
                    </select>
                </li>
                <li><input type="submit" value="Submit"></li>
            </ul>
        </form>
    </div>
</template>

<template name="genre">
    <option value="{{genre}}">{{genre}}</option>
</template>
使用此代码,选择下拉表单为空。我想做的事可能吗

另外,我想在数组填充之前,Template.addPage.genres函数可能会返回


谢谢大家!

我通过使用呈现回调解决了这个问题:

Template.addPage.rendered = function() {
  Activities.distinct("genre", function(error, result){        
    result.sort();
    var genreList = document.getElementById('genreList');
    for(var i in result){
      var option=document.createElement("option");
      option.text=result[i];
      genreList.add(option, null);
    }
  });
}

我使用Mongo的
find
方法将集合公开给模板:

Template.addPage.genres = function() {
   return Genres.find({}, {sort:{time: -1}});       
}
Template.addPage.genres = function() {
   return Genres.find({}, {sort:{time: -1}});       
}