Last Updated: February 25, 2016
·
2.341K
· guilhermedecampo

Meteor make widgets easy on new blaze engine

Making widgets on the new blaze template is really easy!

You just have to create four things:

1 - Your widget's template

For example an image of an album that shows a list of musics when clicked.

<template name="albumPlusInfo">
<img id="infoButton" data-placement="top" data-toggle="popover" data-container="body" data-trigger="click" data-content="
    <table class='table table-hover'>
        <thead>
            <tr>
                <th>Music</th>
                <th>Quality</th>
            </tr>
        </thead>
        <tbody>
            {{#each displayMusics}}
                <tr>
                        <td>{{musicName}}</td>
                    <td>{{musicQuality}}★ ★ ★ </td>
                </tr>
            {{/each}}
        </tbody>
    </table>
    <button class='btn goOrder'>Buy Album Now!</button>
  src="/images/albumAwesome.jpg">
</template>

2 - Helpers for the widget's template

Get the info from the Musics mongo collection

Template.albumPlusInfo.helpers({
   displayMusics: function() {
     return Musics.find();
});

3 - Events for the widget's template

Using iron-router to route to the buy page

Template.albumPlusInfo.events({
   'click .goOrder: function (event, template) {
       Router.go('/app/buyalbum');
  }
});

4 - Call popover function each time widget is rendered

Using boostrap popover

Template.albumPlusInfo.rendered = function () {
 $('#infoButton').popover();
};

Making widgets in the new blaze engine is cool!
Try it out!

1 Response
Add your response

Great post.
I am still missing, how can I listen for event like
'click .music-name' : function()......
<td class='music-name'>{{musicName}}</td>

over 1 year ago ·

Have a fresh tip? Share with Coderwall community!

Post
Post a tip
Did you know?

JavaScript on a page runs with the privileges of that origin. One altered library, tag manager, or snippet can read inputs, change what people see, and call your APIs as the user.

Security insights from Cside