如何将选定的属性添加到Meteor Blaze中的下拉选项标记中

How to add selected attribute to dropdown option tag in Meteor Blaze?

本文关键字:Blaze 选项 Meteor 添加 属性      更新时间:2023-09-26

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块中的变量
知道如何才能达到我想要的结果吗?

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}}

尝试这个

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');