使用Handlebars迭代#each对Meteor中的一串字符串

时间:2013-12-12 09:00:07

标签: meteor handlebars.js

我有一个userId的字符串数组,并在{{#each}}的模板中迭代。但是,#each似乎想要一个对象并将每个字符串转换为对象,如下所示:

String {0: "T", 1: "e", 2: "2", 3: "s", 4: "y", 5: "D", 6: "g", 7: "G", 8: "d", 9: "K", 10: "e", 11: "i", 12: "i", 13: "Q", 14: "S", 15: "i", 16: "W"} 

非常讨厌。任何想法如何避免这个问题?

由于

4 个答案:

答案 0 :(得分:4)

怎么样

this.toString()

可能比String(this)更强大。

答案 1 :(得分:1)

我遇到了同样的问题,

this.toString()

解决了这个问题,但作为Meteor的新手,我很好奇为什么会发生这种情况,以及这是否是一个可接受的问题解决方案。

数据

client {
    exampleProerty: value,
    projectManagers: [
        userId,
        userId 
    ],
    examleTwo: value
}

<强>模板

{{#each projectManagers}}
    {{> userTemplate}}
{{/each}}

模板助手

Template.userTemplate.helpers({

user: function() {
    var id = this.toString();
    var user = Meteor.users.findOne({_id: id});
    return user;
}

});

否则,希望这有助于其他人。

答案 2 :(得分:0)

这似乎有效:

String(this)
尽管如此,我还是不太优雅......

答案 3 :(得分:0)

例如,要显示数组中的项目列表:

// input to template
const shopping_list = [
  'Apples',
  'Oranges',
  'Bread',
  'Peanut Butter'
];

// template.hbs
<ul>
  {{#each shopping_list}}
    <li>{{this}}</li>
  {{/each}}
</ul>

预期结果:

  • 苹果
  • 橘子
  • 面包
  • 花生酱