YOUR FIRST METEOR APPLICATION翻译(七)——Session

Sessions

和其他的Web开发框架一样Sessions同样也是Meteor.js必不可少的一部分。当一个用户点击player类的HTML标签的时候,如果我们要改变它的背景色,要怎么做呢?

为了达到这个效果,我们会使用sessions作为一个中转的存储,从而达到效果。废话就不说了,我们来点实战的。

创建Sessions

我们可以在‘click .player’函数里面加入如下的代码来创建一个session:

Session.set('selectedPlayer', 'session value test');

这样我就创建了一个名叫“selectedPlayer”的session标签,并且它的值为“session value test”。

当然,有设定session的函数,就肯定会有获取session的函数,下面代码就是获取的方法:

Session.get('selectedPlayer');

好了,到了现在我们来玩点实战的东西。

我们通过下面的js代码来从我们点击的player标签里面获取他的数据的id:

1
2
3
4
'click .player': function(){ 
var playerId = this._id;
Session.set('selectedPlayer', playerId);
}

当然,我们要改变背景颜色少不了css的代码设定:

1
2
3
4
.selected{
background-color: yellow;

}

然后回到js代码中添加下面的helper函数:

1
2
3
4
5
6
7
8
9
10
11
12
Template.leaderboard.helpers({
'player': function(){
return PlayersList.find();
},
'selectedClass': function(){
var playerId = this._id;
var selectedPlayer = Session.get('selectedPlayer');
if(playId == selectedPlayer){
return "selected";
}
}
});

这个的this._id其实就是读取点击的那个HTML标签的对应player的数据库中的_id

接着我们在HTML模版里面的<li>标签里面加入一下的代码:

<li class="player ">: </li>

到了这里我们已经实现了点击相应的HTML的<li>标签就可以改变它的颜色的功能了。

感谢meteortips & David以上内容根据英文版的YOUR FIRST METEOR APPLICATION粗略翻译而来,在未经我本人允许的情况下请勿转载,违者本人保留法律追究的权利。