我是一个试图学习和喜欢排行榜应用程序的新手。我如何找到资源来学习如何提出建议:
制作一个在按分数排序和按名称排序之间切换的按钮。提示:使用 Session 变量来保存当前的排序选择。
制作一个按钮,将每个人的分数重置为随机数。(在服务器启动代码中已经有代码可以做到这一点。你能把其中的一些代码分解出来,让它在客户端和服务器上运行吗?)
实施一种在排行榜中添加和删除科学家的方法。
我很想学习如何做这些事情。
我是一个试图学习和喜欢排行榜应用程序的新手。我如何找到资源来学习如何提出建议:
制作一个在按分数排序和按名称排序之间切换的按钮。提示:使用 Session 变量来保存当前的排序选择。
制作一个按钮,将每个人的分数重置为随机数。(在服务器启动代码中已经有代码可以做到这一点。你能把其中的一些代码分解出来,让它在客户端和服务器上运行吗?)
我很想学习如何做这些事情。
流星是非常新的。不幸的是,在线信息并不丰富,教程也很少。您最好的信息和学习来源是文档。
流星文档: http ://docs.meteor.com/
教程: http ://www.skalb.com/2012/04/16/creating-a-document-sharing-site-with-meteor-js/
关于如何聊天的视频:http: //vimeo.com/40300075
我已经在我的 Leaderboard 移植到 CoffeeScript + Less + Bootstrap 中实现了排序以及其他一些增强功能。
博客:https ://srackham.wordpress.com/2012/04/22/meteor-leaderboard-with-coffeescript-less-and-bootstrap/
我找到了这个网站。我认为这里解释得很好。
我使用了最新的演示,其中包含您正在寻找的代码。查看用户如何创建派对。例子非常好。
您可以拉取应用程序,并通过运行查看代码:
meteor create --example parties
特别关注model.js文件:
createParty: function (options) {
options = options || {};
throw new Meteor.Error(400, "Required parameter missing");
if (options.title.length > 100)
throw new Meteor.Error(413, "Title too long");
if (options.description.length > 1000)
throw new Meteor.Error(413, "Description too long");
if (! this.userId)
throw new Meteor.Error(403, "You must be logged in");
return Parties.insert({
owner: this.userId,
title: options.title,
description: options.description,
});
您需要一个好的 IDE 来跟踪每个方法的调用方式。我使用Sublime Text2搜索“createParty”等实例。您可以将应用程序分开;尝试看看您是否可以在聚会应用程序中添加其他字段来测试您的知识。自带啤酒复选框?
重点阅读Meteor Docs中的Meteor.methods、Meteor.publish、Meteor.subscribe。模板事件也确实帮助了我。
我是 Meteor 的新手,但通过执行以下操作来实现此功能:
*在 HTML 中
<template name="leaderboard">
<div class="sort">
<input type="button" class="sortByName" value="name" />
<input type="button" class="sortByScore" value="score" />
</div>
<div class="leaderboard">
{{#each players}}
{{> player}}
{{/each}}
</div>
...
*在 leaderboard.js 文件中
Template.leaderboard.players = function () {
//if sortByName === true
if (Session.get("sortByName")) {
return Players.find({}, {sort: {name: 1, score: -1}});
} else {
// if score
return Players.find({}, {sort: {score: -1, name: 1}});
}
};
Template.leaderboard.events({
'click input.inc': function () {
Players.update(Session.get("selected_player"), {$inc: {score: 5}});
},
// if name button is clicked
'click input.sortByName': function () {
Session.set("sortByName", true);
},
// if score button is clicked
'click input.sortByScore': function () {
Session.set("sortByName", false);
}
});