数据
{
"data": {
"cats": [
{
"name": "Kidlat",
"age": 1
},
{
"name": "Lanaya",
"age": 2
},
{
"name": "Akasha",
"age": 2
}
]
}
}
我有一个<select>
循环使用胡须,如:
{{#data.cats}}
<select id="select">
<option value="{{this}}">{{name}} - {{age}}</option>
</select>
{{/data.cats}}
循环工作正常,但我似乎无法获得项目的对象值。
$('#clinicSelectMap').on("change", function(e) {
console.log(this.value); // has value
console.log(this.value.name); // undefined
});
答案 0 :(得分:0)
您误解了this
在回调中是如何运作的。 this
引用了select
元素本身,并且调用console.log(this.value)
刚刚打印了在下拉列表中选择的值。请注意,它与您的集合中的对象不同。
实际上,您无法使用this
在HTML模板中传递整个对象。相反,您需要将name
(我假设它是唯一的)分配给value
属性,并在回调中使用它来获取对象。
{{#data.cats}}
<select id="select">
<option value="{{name}}">{{name}} - {{age}}</option>
</select>
{{/data.cats}}
$('#clinicSelectMap').on("change", function(e) {
var name = this.value;
var cat = collection.data.cats.find(item => item.name === name);
console.log(cat);
});