使用localStorage禁用Meteor和Sugar JS中的按钮

时间:2015-06-09 04:29:35

标签: meteor

当有人点击此按钮时,它会禁用10秒

Template.hello.events({
  'click input.hack': function () {
    var oneMinute = ((10).secondsAfter(this.Date));
    Session.set('endingDate',oneMinute); 
    Meteor.call('hackclick');
  },
});

这是根据时间禁用按钮的代码。

Template.hello.helpers({
  'disabledBtn': function(){
      var eDate = Session.get('endingDate'); 
      var nDate = ((1).secondsBefore(this.Date));
      if( nDate <= eDate){
      return "disabled"
      } else {
      return
      }
  } 
});

但这样做意味着你可以刷新浏览器,禁用就会消失。

我尝试使用localStorage,但它不起作用。

'click input.hack': function () {
  var oneMinute = ((10).secondsAfter(this.Date));
  localStorage.setItem('timerend', oneMinute);
  Meteor.call('hackclick');
},

'disabledBtn': function(){
    var eDate = localStorage.getItem('timerend');
    var nDate = ((1).secondsBefore(this.Date));
    if( nDate <= eDate){
    return "disabled"
    } else {
    return
    }
}

我甚至试图将现在的时间存储在localStorage中以查看是否有效。但是没有。

任何想法为什么?我应该尝试将其存储在数据库中吗?我认为localStorage更具可扩展性。

1 个答案:

答案 0 :(得分:2)

localStorage将值存储为字符串。一旦检索到保存的项目,您需要将其解析为Date

var eDate = localStorage.getItem('timerend');
eDate = new Date(eDate); // do it something like this

您可以看到 fiddle 作为示例。