gpt4 book ai didi

meteor - 依赖选择框 meteor

转载 作者:行者123 更新时间:2023-12-02 02:10:03 28 4
gpt4 key购买 nike

我正在努力思考 meteor 依赖项和 react 变量。我有两个选择框。一个列出类别(水果、蔬菜、家禽等),第二个列出子类别(苹果、梨、葡萄等)。

我希望在用户更改类别下拉列表时显示并填充子类别下拉列表。

我知道我可以观察 Template.action_form.events ={'change #category'}...但我不确定从这里开始要采取什么步骤。一种想法(hack)是将所有子类别输出到一个多维数组并使用 jquery 来管理它。我不得不认为有一种更聪明的方法可以用 meteor 来做到这一点。

对于类别下拉菜单,我有这样的内容:

Template.action_form.category = function(id){
return Category.find();
}

我不确定如何为子类别设置模板...现在我有这个(不工作)

Template.action_form.subcategory = function(parent){
if (document.getElementById(parent)){
category = document.getElementById(parent).value;
return Subcategories.find({category_id:parent});
}
}

HTML/模板如下所示:

<template name="action_form">
<select id="category" class="action-selects">
{{#each category _id}}
<option value="{{_id}}">{{name}}</option>
{{/each}}
</select>
<select id="subcategory" class="action-selects">
{{#each subcategory "category"}}
<option value="{{_id}}">{{name}}</option>
{{/each}}
</select>
<template>

感谢大家提供的任何建议。

最佳答案

如果你想为此使用 meteor 的整个 react 魔法,你可以在第一个选择发生变化时设置一个 session 变量。

Template.action_form.events = {
'change #category': function(evt) {
Session.set("selected_category", evt.currentTarget.value);
}
}

您对 Subcategories 的订阅会将所选类别作为参数传递到服务器发布方法中。

// Client
Meteor.autosubscribe(function () {
Meteor.subscribe("subcategories",Session.get("selected_category"));
}

// Server
Meteor.publish("subcategories", function(selectedCategory) {
Subcategories.find({category_id: selectedCategory})
});

如果找到,子类别的模板将显示所有 Subcategories

Template.action_form.subcategory = function(parent){
Subcategories.find();
};

当然,您可以一次发布所有子类别(不知道那里有多少)并在客户端中过滤子类别,而不是在订阅/发布方法中。

Template.action_form.subcategory = function(parent){
Subcategories.find({category_id: Session.get("selected_category")});
};

关于meteor - 依赖选择框 meteor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13323366/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com