【问题标题】:Handling of events within Scrollview and Surfaces in Meteor famous-views在 Meteor 著名视图中处理 Scrollview 和 Surfaces 中的事件
【发布时间】:2015-04-21 00:34:03
【问题描述】:

我正在尝试找到一种实用的方法来处理 Meteor 中具有著名观点的事件。

所以我已经阅读了 gadicohen 的文档 (famous-views demo) 并且到目前为止它有效。但是,如果我将 layoutTemplate 添加到我的 Iron:router 并使用 {{>yield}} 路由到模板,那么我只能从 layoutTemplate 的 JS 文件中捕获事件。

这意味着我必须将我所有的 JS 逻辑都包含到 layout-JS 文件中,这似乎不切实际。

布局.html:

{{#famousContext id="MainCtx"}}

    {{> yield}}
{{/famousContext}}

layout.js:

Template.layout.events({
    'click': function() {}  // works!!
});

someTemplate.html:

<template name="someTemplate">
    {{#Scrollview align="[0,0.06]" origin="[0,0]"}}
        {{#famousEach items}}
            {{>Surface template="item" size="[undefined, true]" }}
         {{/famousEach}}
    {{/Scrollview}}

<template name="item">
    <div id="{{_id}}" style="height: 100%; width: 100%;>
<template>

someTemplate.js:

Template.someTemplate.events({
    'click': function() {}     // doesn't work
});

我也尝试过着名的事件,但没有成功。 使用 target.on() 我什至不知道如何处理 Scrollview 中的表面。

那么 Meteor 的方法是什么?

谢谢和问候

【问题讨论】:

    标签: meteor scrollview famo.us surface


    【解决方案1】:

    正如著名观点网站所述,我发现了错误 “事件不会向上传播(“冒泡”)(从 Surface 出来)。”,因此正确的用法是:

    Template.item.events({
        'click': function() {}     // should work!
    });
    

    【讨论】:

    • 你能分享一个你正在做的事情的链接吗?我一直在考虑再次尝试出名,但仍然不确定它是否可用。
    • 你好,很遗憾这是一个工业项目,所以我不能这样做,但我可以将一个语法相似的测试项目推送到 github,如果你仍然感兴趣?现在,我正试图找到一种方法来让著名观点发挥作用。否则,我将不得不在 Tracker.autorun() 中以众所周知的方式完成所有事情以实现反应性。这很不方便,但我知道有些初创公司已经这样做了,而且显然它起作用了,只是你不能使用 Blaze,这基本上很烂。
    • 到目前为止,我必须补充一点,在我看来,著名的观点还没有准备好投入生产。开发人员也在他的网站上说明了这一点。我只能向任何人推荐直接在 javascript 中开发,但使用模板(使用内容:Blaze.render(...)),如下所述:youtube.com/watch?v=bmd-cXSGQAA 和这里:discovermeteor.com/blog/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多