在meteor中显示/取消选中mongo数据的复选框值

时间:2015-02-20 06:55:38

标签: meteor

我创建了名为" tbl_dynamic"的集合。在那个名为" dynamicField"的字段中在我存储的数据中创建了这样的

"_id":"LoBTiSo3oqr54Ac5R",
"text":"test",
"dynamicField" : {
        "text1" : {
            "checkedValue" : false
        },
        "text2" : {
            "checkedValue : true
        }
    }

在流星方面,我有一个像这样的模板

<template name="tmpChecked">
<input id="newField" name="field" type="text" placeholder="Field" readonly="readonly" class="form-control" value={{key}}>
            <div class="checkbox">
                <label>
                    <input id="chkChecked" type="checkbox" name="chk_checked" checked={{checkedValue}}>
                </label>
            </div>
</template>

我的助手包含以下代码来从集合中获取数据

//helper to view fields
Template.tmpChecked.helpers({
    values: function() {
        return tbl_dynamic.find({},{dynamicField:1,text:1});
    }
});

现在问题是,当我试图显示复选框值时,它没有显示checkedValue。

任何建议?

谢谢,

1 个答案:

答案 0 :(得分:0)

我了解您要显示复选框列表,每个复选框后跟输入框。

为此,你需要做两件事 -

  1. 稍微更改数据模型。将dynamicField属性设置为数组。每个数组元素包含有关字段名称和已检查属性的信息
  2. {
     "_id":"LoBTiSo3oqr54Ac5R", 
     "text":"test", 
     "dynamicField" : [
            {   
                "name": "text1",
                "checkedValue" : false
             },
             {    
                "name": "text2",
                "checkedValue : true
             }
        ]
    }
    

    2.在模板代码中,迭代对象dynamicFields数组并显示它们

    <template name="tmpChecked">
     {{#with values}}
       {{ #each dynamicField}}
           <input id="newField" name="field" type="text" placeholder="Field" readonly="readonly" class="form-control" value={{name}}>
           <div class="checkbox">
                <label>
                    <input id="chkChecked" type="checkbox" name="chk_checked" checked={{checkedValue}}>
                    </label>
                </div>
     {{/each}}
    {{/with}}
    
    </template>
    

    你可以按原样保持帮助功能。无需改变。

    希望这有帮助