0

I'm using meteor-famous-views to integrate famo.us into my meteor app. I got this simple template.

{{#ContainerSurface size="[undefined,250]" translate="[0,172]" class="languageSelectItems"}}
    {{#Scrollview size="[undefined,true]"}}
      {{#famousEach languages}}
        {{>Surface template="languageSelectItem" size="[undefined,50]" class="languageSelectItem"}}
      {{/famousEach}}        
    {{/Scrollview}}
  {{/ContainerSurface}}

And this corresponding Javascript event handler function.

Template.languageSelectItem.famousEvents({
  'click': function(e, fview){
    var lang = Blaze.getData(fview.blazeView);
    Session.set('selectedLanguage', lang);
    $('.languageSelectItems').hide();
  }
});

My problem is dead simple, how do I access the data context?

Blaze.getData(fview.blazeView);

Which is proposed to be the right solution:

https://github.com/gadicc/meteor-famous-views/issues/100

This call returns a reference to the famous object e.g. Surface etc. but I need in my case the associated 'Language' object.

I'm using meteor-famous-views version 0.1.15.

Edit: demo of this component using fview-lab.meteor.com

https://fview-lab.meteor.com/pads/53sHoTJ9JHDFbx5Qt/1

ddresch
  • 138
  • 3

1 Answers1

1

Found a working solution, but not sure if this is the proper way to go.

The trick is the data parameter of the Surface in the famousEach loop.

{{>Surface  template="languageSelectItem" 
                      size="[undefined,50]" 
                      class="languageSelectItem"
                      data=this}} <--- add a reference

I adapted the fview-lab demo:

https://fview-lab.meteor.com/pads/53sHoTJ9JHDFbx5Qt/1

ddresch
  • 138
  • 3