Я пытаюсь сделать то, что, по моему мнению, должно быть очень простой задачей, но не смог этого сделать за последний час. Я хочу выбрать опцию выбора по умолчанию, если свойство пользователя соответствует значению.
<select name="myName">
{{#each addKeys myTable}} <!-- addKeys creates variables for keys and values -->
<option value="{{key}}" {{#if currentUser.property === key}}selected="selected"{{/if}}>{{value}}</option>
{{/each}}
</select>
Теперь я подумал, что это достаточно просто для реализации. Но оказывается, что Spacebars не допускают условных операторов, отличных от восклицательного знака отрицания, поэтому равные знаки не могут быть и речи. Затем я попытался сделать что-то ужасное ради попытки:
В шаблоне myTemplate
:
<select name="myName">
{{#each addKeys myTable}}
<option value="{{key}}" {{isSelected currentUser.property key}}>{{value}}</option>
{{/each}}
</select>
В mytemplate.js
:
Template.myTemplate.helpers({
isSelected: function(v1, v2) {
if (v1 === v2)
return "selected=\"selected\"";
return '';
}
});
Не только этот код ужасен, ужасно смотреть, он не работает:
Exception in Meteor UI: String contains an invalid character
Я не понимаю, почему что-то такое простое кажется невозможным. Я что-то не хватает?