Skip to content Skip to sidebar Skip to footer

Jquery And Reactive Meteor Components

I am using jquery steps in order to render a wizard within a Blaze template. js: Template.form.onRendered( function () { var form = $('#form1'); form.children('div').steps(

Solution 1:

Yes, this is a very common pattern when working with additional JS libraries for UI components. The typically chosen solution is to structure your code/template such that there will be another onRendered event when new things get added. In your case you might do:

<h4>4</h4><fieldset>
    {{#each person}}
    {{> person}}
    {{/each}}
  </fieldset>

...

<templatename="person">
  {{name}}
</template>

And have the same onRendered function for that template:

functionrender() {
    var form = $("#form1");
    form.children("div").steps({
        headerTag: "h4",
        bodyTag: "fieldset",
        transitionEffect: "slideLeft"
    })
}

Template.form.onRendered( render );
Template.person.onRendered( render );

Solution 2:

What ended up working for me:

js:

Template.form.onRendered( function () {
    var form = $("#form1");
    form.children("div").steps({
        headerTag: "h4",
        bodyTag: "fieldset",
        transitionEffect: "slideLeft"
    })

    // New Additionvar temp = this;
    Blaze.render(
        Template.allPeople,
        temp.$('#reactiveUI').get(0)
    );
})

Template.allPeople.helpers({
   person : function () {
       returnPeople.find();
   },
})

html:

<templatename="form"><formid="form1"><div><h4>1</h4><fieldset><small>First Step</small></fieldset><h4>2</h4><fieldset><small>Second Step</small></fieldset><h4>3</h4><fieldset><small>Third Step</small></fieldset><h4>4</h4><fieldset><divid="reactiveUI"><!--Insert Reactive HERE--></div></fieldset></div></form>

<templatename="allPeople"><ul>
      {{#each person}}
        <li>{{this.type}}</li>
      {{/each}}
   </ul></template>

Now after the jquery steps gets built I inject the reactive Blaze template, rather than injecting it before the jquery steps does its thing. Notice the Blaze.render in the onRendered function.

Post a Comment for "Jquery And Reactive Meteor Components"