Template.features.helpers({ features: function(){ var features = Features.find({charId: this._id}, {sort: {name: 1}}); return features; }, hasUses: function(){ return this.usesValue() > 0; }, colorClass: function(){ return getColorClass(this.color) }, featureOrder: function(){ return _.indexOf(_.keys(colorOptions), this.color); } }); Template.features.events({ "tap #addFeature": function(event){ var featureId = Features.insert({name: "New Feature", charId: this._id}); GlobalUI.setDetail({ template: "featureDialog", data: {featureId: featureId, charId: this._id}, heroId: featureId }) }, "tap .containerTop": function(event){ var featureId = this._id; var charId = Template.parentData()._id; GlobalUI.setDetail({ template: "featureDialog", data: {featureId: featureId, charId: charId}, heroId: featureId }); }, "tap .useFeature": function(event){ var featureId = this._id; Features.update(featureId, {$inc: {used: 1}}); }, "tap .resetFeature": function(event){ var featureId = this._id; Features.update(featureId, {$set: {used: 0}}); } });