【问题标题】:How to get data context in famousEvents handler function如何在着名的事件处理函数中获取数据上下文
【发布时间】:2015-03-07 19:42:49
【问题描述】:

我正在使用流星著名视图将 famo.us 集成到我的流星应用程序中。我得到了这个简单的模板。

{{#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}}

还有这个对应的Javascript事件处理函数。

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

我的问题很简单,如何访问数据上下文?

Blaze.getData(fview.blazeView);

哪个是正确的解决方案:

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

此调用返回对著名对象的引用,例如Surface 等,但在我的情况下我需要关联的“语言”对象。

我使用的是 0.1.15 版的流星著名视图。

编辑:使用 fview-lab.meteor.com 演示此组件

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

【问题讨论】:

    标签: javascript meteor famo.us


    【解决方案1】:

    找到了一个可行的解决方案,但不确定这是否是正确的方法。

    诀窍是著名的Each循环中Surface的数据参数。

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

    我改编了 fview-lab 演示:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      • 2020-03-05
      • 2021-03-31
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多