Meteor复选框 - 将表达式的值显示为String,不解释为Boolean

时间:2015-08-30 20:04:25

标签: javascript checkbox meteor

我已经实施了一个复选框,它工作得很好。

HTML:

<form>
    <ul>
        {{#each checkbox}}
        <li>
            <input type="checkbox" checked="{{checked}}" class="toggle-checked"> {{name}}: {{checked}}
        </li>
        {{/each}}
    </ul>
</form>

JS:

Cbtest = new Mongo.Collection('cbtest');

Template.checkbox.helpers({
    checkbox: function () {
        return Cbtest.find();
    }
});

Template.checkbox.events({
    "click .toggle-checked": function () {
       var self = this;
        Meteor.call("setChecked", self._id, !self.checked);
    }
});

Meteor.methods({
    setChecked: function (checkboxId, setChecked) {
        Cbtest.update(checkboxId, {
            $set: {
                checked: setChecked
            }
        });
    }
});

enter image description here

我想显示值(“true”或“false”),具体取决于复选框的状态。 现在似乎表达式“{{checked}}”被评估为true或false,如果它是true,则它返回相应文档条目的值。 我怎样才能将内容显示为String(“true”/“false”)?

提前致谢! VIN

1 个答案:

答案 0 :(得分:1)

您可以添加另一个帮助器,使用checked函数将toString() Bool转换为字符串:

checkedString: function () {
  return this.checked.toString();
}

然后在模板中使用此助手:

<input type="checkbox" checked="{{checked}}" class="toggle-checked"> {{name}}: {{checkedString}}

请参阅此流星pad进行演示。