javascript - meteor 中的每个模板循环多次

标签 javascript meteor

我正在学习如何使用 meteor ,当我使用每个模板时,应用程序会随机循环多次。有谁知道为什么吗?

JS

PlayersList = new Mongo.Collection('players');

PlayersList.insert({name: "David" , score:0});
PlayersList.insert({name: "Bob", score: 0});;
PlayersList.insert({name: "Wesley", score: -1000});

if(Meteor.isClient){
    Template.leaderboard.helpers({
        player: function(){
            return PlayersList.find();
        }
            });
}

和 HTML

<head>
    <title>LeaderBoard</title>
</head>

    <body>
        <h1>Leaderboard</h1>

        {{>leaderboard}}
    </body>
    <template name="leaderboard">
        {{#each player}}
            <li>{{name}}: {{score}}</li>
        {{/each}}
    </template>

最佳答案

做一个meteor reset来清除你的数据库并试试这个代码:

PlayersList = new Mongo.Collection('players');

if (Meteor.isClient) {
  Template.leaderboard.helpers({
    player: function() {
      return PlayersList.find();
    }
  });
}

if (Meteor.isServer) {
  Meteor.startup(function() {
    // if there are no players in the database
    if (PlayersList.find().count() === 0) {
      PlayersList.insert({name: "David", score: 0});
      PlayersList.insert({name: "Bob", score: 0});
      PlayersList.insert({name: "Wesley", score: -1000});
    }
  });
}

在原始代码中,播放器是从客户端和服务器端插入的(没有Meteor.isServer 守卫)。每次有新的客户端连接,每次服务器启动时,都会插入一组新的播放器。

在上面的代码中,我们只在服务器启动时插入新玩家并且只有当数据库中没有玩家时。这可确保数据库在重置后仅播种一次。

关于javascript - meteor 中的每个模板循环多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32831430/

相关文章:

html - 呈现 HTML 格式的 mongo 文档

android - Urban Airship + MeteorJS 集成

javascript - 是否可以对 Meteor 用户进行响应式(Reactive) isVerified 调用?

node.js - meteor + Node -amqp : unable to connect via SSL to RabbitMQ server

Javascript 数组在回调循环中发生变化

c# - 在 asp.net 网站中打印网页时,分页之前无法在 firefox 浏览器中工作

javascript - 组件的高阶函数过滤方法

javascript - 将 p5js 集成到 Meteor 项目中

javascript - 显示加载栏直到获取

javascript - 如何在单击时关闭其他子菜单