我有一个用户名数组,我在一个列表中呈现,如下所示:
{{#each contacts}}
<div class="name">{{this}}</div>
{{/each}}
这工作得很好,但后来我尝试从事件中获取用户名:
'click .name': function(e,t){
console.log(this)
}
我得到这个令人沮丧的对象
String {0: "c", 1: "h", 2: "a", 3: "r", 4: "l", 5: "i", 6: "e", length: 7, [[PrimitiveValue]]: "charlie"}
这使得进行字符串比较变得非常具有挑战性。任何想法为什么这甚至是一个问题或如何处理它?
最佳答案
通常在 Javascript 中,上下文必须是一个对象而不是一个原始类型 ( link )。大概,contacts
只是一个字符串数组,因此在每个 div 标签中,这些字符串被装箱(即转换为引用类型,在本例中为 String 对象)。这就是您在此处记录的内容 - String 对象,而不是您的原始原语。
您有两个选择:
this.valueOf()
它会给你原始字符串。 [{value: 'nameOne'}, ...
])。这样,您可以替换 {{this}}
与 {{value}}
和 this
在您的事件处理程序中,将以您提供的相同格式返回对象。 关于meteor - # meteor 中带有火焰的数组中的每个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26147697/