Вы неправильно поняли, как this
работал в обратном вызове. this
ссылается на сам элемент select
, и вызов console.log(this.value)
только что напечатал значение, которое было выбрано в раскрывающемся списке. Обратите внимание, что это не тот объект, который есть в вашей коллекции.
Фактически, вы не можете передать весь объект в шаблоне HTML, используя this
. Вместо этого вам нужно присвоить 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);
});