Dynamic 如何使Meteor订阅动态化?

Dynamic 如何使Meteor订阅动态化?,dynamic,meteor,subscription,Dynamic,Meteor,Subscription,我希望使我的流星订阅动态/反应。现在,我有一个页面,该页面根据批准的模板ID订阅模板集合: Meteor.subscribe'templates',templateId 在同一页上,我有一个模板名称和ID的下拉列表: <p><label>Select Template</label></p> <select id="templateSelect" name="templateSelect"> <op

我希望使我的流星订阅动态/反应。现在,我有一个页面,该页面根据批准的模板ID订阅模板集合:

Meteor.subscribe'templates',templateId

在同一页上,我有一个模板名称和ID的下拉列表:

    <p><label>Select Template</label></p>
    <select id="templateSelect" name="templateSelect">
        <option disabled selected> Select Template </option>
        {{#each orderTemplates}}
            <option value="{{this._id}}">{{this.templateName}}</option>
        {{/each}}
    </select>
我希望订阅变量templateId等于我选择的模板的选项值。有人有什么想法吗?我真的不知道从哪里开始这个

谢谢

要获取所选选项的id,请使用jQuery选择器按id选择,然后选择该菜单的.val:

var templateId = $('select[id="templateSelect"]').val();
Meteor.subscribe('templates', templateId);

如果要订阅模板,应遵循以下策略:

创建一个作用域为模板的被动变量。 在事件处理程序中更新1。 结合使用-这将确保您只有一个未完成的订阅,并在模板销毁时自动清理订阅。 Template.myTemplate.events{ “更改模板选择”:函数事件,模板{ //从所选选项中提取值/id var值=$event.target.val; //更新templateId-whis将导致自动运行再次执行 template.templateId.setvalue; } }; Template.myTemplate.onCreatedfunction{ var self=这个; //将当前选择的模板id存储为反应变量 var templateId=新的反应变量; //每当templateId更改时,将重新运行此操作 这是自动取消功能{ //仅当选择了一个模板ID时才订阅当前模板ID。请注意 //将自动清除以前订阅的所有数据,并且 //此模板销毁后,还将停止所有订阅。 如果templateId.get self.subscribe'orderTemplateShow',templateId.get; }; }; 建议阅读:


您想要全局订阅还是模板级订阅?也就是说,一旦你导航到一个新的路由/模板,订阅是否应该停止?嗨-我希望它是一个模板级订阅。明白了,我没有意识到我可以在模板帮助程序文件中使用subscription方法。在这种情况下,我建议将它放在模板事件处理程序中,而不是放在帮助程序中,因为您正在对菜单选择做出反应。您是一个真正的救命恩人!!