【问题标题】:Meteor : Blink data when updatedMeteor:更新时闪烁数据
【发布时间】:2016-01-22 23:43:35
【问题描述】:

我希望有人可以帮助解决这个问题,因为这很令人沮丧。

我检查了周围所有的动画包,但它们似乎都是由用户操作激活的,例如单击一个项目。如果更改是从服务器触发的呢?

我想在我的收藏从非 Meteor 源更改时显示动画。我有一个 Java 演示应用程序,它可以调用 Meteor 服务器方法,进而更新 Collection。

更改会显示在客户端中,因此我知道基础功能正常,但我应该如何编写客户端代码,以便在更改时例如闪烁?

想想“股市应用”。

更新时以红色闪烁项目的简单示例会很棒。另外,如何检测何时插入和删除项目?

【问题讨论】:

    标签: javascript jquery meteor jquery-animate css-animations


    【解决方案1】:

    假设您有一个最喜欢股票列表的模板,以及每只股票的模板:

    <template name="favorites">
        {{#each favorites}}
          {{> stock}}
        {{/each}}
    </template>
    
    <template name="stock">
        <div class="row" id="{{_id}}">
            <div class="col-xs-6 symbol">{{symbol}}</span>
            <div class="col-xs-6 quote">{{quote}}</span>
        </div>
    </template>
    

    onRendered 模板事件中,您可以创建一个观察者来观察对特定查询的更改。只需使用与生成收藏夹列表相同的查询即可。当任何记录发生更改时,使用 jQuery 找到它并设置高亮效果:

    Template.favorites.onRendered(function() {
      var query = Favorites.find({}, { sort: { symbol: 1 } });
    
      var handle = query.observeChanges({
        changed: function (id, fields) {
          //this will highlight the row of the updated favorite, using the id from the Favorites collection
          $('#' + id).effect('highlight', {}, 1500);
        }
      });
    });
    

    【讨论】:

    • 谢谢!我想出了一个类似的解决方案,使用 Tracker.autorun() 而不是 onRendered()。如果observeChanges(),则改为observe()。但我现在有信心知道在 Meteor 中解决此类问题的正确方法。
    • 这部分:
      加上$('#' + id).effect('highlight', {}, 1500) ;也很聪明!
    猜你喜欢
    • 2020-02-29
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 2023-01-26
    相关资源
    最近更新 更多