Meteor / Mongo:将嵌套数组的对象添加到模板空格键

时间:2015-10-01 23:58:45

标签: javascript meteor

我想通过获取嵌套数组的数据来设置textarea的内容。在帮助器中,我定义了文档id和元素id。现在我想获取text的内容以便在模板中显示。 但我的问题是从findOne结果中获取确切的字段,因此空格键助手{{infotext}}显然是错误的:

文档JSON

{
    "_id" : "8rmzAN3yw79TAKNeD",
    "title" : "title",
    "tooltips" : [
        {
            "element" : "16091688",
            "text" : "Lorem"
        },
        {
            "element" : "944a0d46",
            "text" : "ipsum"
        }
    ]
}

辅助

Template.infotext.helpers({
    infotext: function() {
        var id = '8rmzAN3yw79TAKNeD',
            elementId = Session.get('elementID');
        return Articles.findOne({_id: id, 'tooltips.element': elementId});
    }
});

模板

<template name="infotext">
    <form>
        <textarea>{{infotext}}</textarea>
        <input type="submit" class="btn btn-default" value="save">
    </form>
</template>

2 个答案:

答案 0 :(得分:1)

当您仅在文档中的信息之后,您的助手将返回整个文档。你肯定需要修改辅助函数。 (请注意,此代码未经测试,可能无法正常工作,但会为您提供有关如何操作的信息)

Template.infotext.helpers({
    infotext: function() {
    var id = '8rmzAN3yw79TAKNeD',
    elementId = Session.get('elementID');
    var doc = Articles.findOne({_id: id, 'tooltips.element': elementId});
    var text = '';
    if (doc) {
        var filtered = doc.tooltips.filter(function(tooltip) {
            if (tooltip.element == Session.get('elementID')) {
                return tooltip;
            }
            return false;
         });
         if (filtered[0]) {
             text = filtered[0].text; //returns the first match - assuming there is no duplicates
         }
    }
    return text;
}
});

答案 1 :(得分:1)

有同样的问题,谢谢,这个助手适合我:

python setup.py install