HTML
<select id="article-weight">
{{#each weightValues}}
<option value="{{this}}">{{this}}</option>
{{/each}}
</select>
JS
Template.articleSingle.helpers({
weightValues: function(){
return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
}
)};
Template.articleSingle.events({
'change #article-weight': function (event, template) {
weight = parseInt( $(event.currentTarget).val() );
Meteor.call('updateArticle', template.data._id, {
weight: weight
});
}
)};
我想要这样的东西
{{#each weightValues}}
<option {{#if weight==this}}selected{{/if}} value="{{this}}">{{this}}</option>
{{/each}}
但是在Blaze的if块中比较变量肯定是不可能的 知道怎样才能达到我想要的效果吗?
答案 0 :(得分:1)
Template.articleSingle.helpers({
weightValues: function(){
return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
},
isSelected:function(comparison){
return comparison === this;
},
yourComparison:function(){
return 3;
},
)};
{{#each weightValues}}
{{#if isSelected yourComparison}}
<option selected='true' value="{{this}}">{{this}}</option>
{{else}}
<option value="{{this}}">{{this}}</option>
{{/if}}
{{/each}}
答案 1 :(得分:1)
试试这个
Template.articleSingle.helpers({
weightValues(){
return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
},
weight(){
return 2
},
)};
<select id="select">
{{#each weightValues}}
<option {{#if $eq this weight}} selected="selected" {{/if}} value="{{this}}">{{this}}</option>
{{/each}}
</select>
或者您可以使用javaScript
$('#select option[value="2"]').attr('selected', 'selected');