簡體   English   中英

選擇類別而不更新子類別

[英]Select category not updating sub category

假定查看用戶類別選擇,然后更新子類別。 該解決方案是由其他人推薦的,但我似乎無法使其正常工作。 當我選擇類別時,子類別不會更新。 有人可以讓我知道我在想什么。

路徑: category.js

<template name="category">
    {{#autoForm collection="Meteor.users" id="categoryForm" doc=currentUser type="update"}}
        {{> afQuickField name='profile.categories'}}
    {{/autoForm}}   
</template>

路徑: Schema.js

var fruitArr = ['apple', 'banana'];
var vegetablesArr = ['carrot', 'broccoli'];

Schema.Category = new SimpleSchema({
    category: {
        type: String,
        label: "Category",
        allowedValues: ['fruit', 'vegetables']
    },
    subcategory: {
        type: String,
        label: "Subcategory",
        allowedValues: _.union(fruitArr, vegetablesArr),
        autoform: {
            options: function () {
                let category = AutoForm.getFieldValue("category");
                if (!category) return [{label: "Please select a category first", value: ""}];

                if (category === "fruit") return _.map(fruitArr, (v, i) => ({
                    label: "Fruit " + (i + 1) + ": " + v,
                    value: v
                }));
                else return _.map(vegetablesArr, (v, i) => ({label: "Vegetables " + (i + 1) + ": " + v, value: v}));
            }
        }
    }
});

Schema.UserProfile = new SimpleSchema({
    categories: {
        type: Schema.Category,
        optional: true,
    }
});

調用AutoForm.getFormValues('categoryForm'); 在瀏覽器的控制台日志中,將返回以下結果:

{
   "insertDoc":{
      "profile":{
         "categories":{
            "category":"fruit"
         }
      }
   },
   "updateDoc":{
      "$set":{
         "profile.categories.category":"fruit"
      },
      "$unset":{
         "profile.categories.subcategory":""
      }
   }
}

從上面可以看到,架構字段subcategory被稱為profile.categories.subcategory 因此,由於AutoForm.getFieldValue("category");不會更新字段subcategory AutoForm.getFieldValue("category"); 返回undefined

您可以通過更改來解決此錯誤

let category = AutoForm.getFieldValue("category"); 

let category = AutoForm.getFieldValue("profile.categories.category");

subcategory架構字段中的options函數中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM