2013-03-05 22 views
8

Oyun için basit bir geri sayım sayacı oluşturuyorum. CoffeeScript ve Meteor kullanıyorum. {{Time}} ifadesine sahip bir Gidonlar "Zamanlayıcı" şablonum var.Meteor'da Basit Zamanlayıcı JS

clock = 10 

timeLeft =() -> 
    if clock > 0 
     clock-- 
    else 
     "That's All Folks" 
     Meteor.clearInterval(interval) 

interval = Meteor.setInterval(timeLeft, 1000) 

if Meteor.isClient 
    Template.timer.time = interval 

Yukarıdaki kod sadece bana statik 8 görüntüsünü veya 6 yerine geri sayım sayacı veriyor: İşte

kodudur.

Birkaç konsol.log ifadesi eklerseniz, terminalde tasarlandığı şekilde çalıştığını görebilirim.

clock = 10 

timeLeft =() -> 
    if clock > 0 
     clock-- 
     console.log clock 
    else 
     console.log "That's All Folks" 
     Meteor.clearInterval(interval) 

interval = Meteor.setInterval(timeLeft, 1000) 

if Meteor.isClient 
    Template.timer.time = interval 

cevap

12

Eğer onun reaktif, aksi şablonu sistem ui içinde güncellemek için zaman farkında olmayacak şekilde Session kullanmaya gerek gidonlar cinsinden bir değer güncellemek istiyorsanız. Ayrıca, şablona, ​​zamanlayıcı değeri yerine tanıtıcıyı işleyen bir işleyiciden geçirdiniz.

Aşağıdaki verileri kullanarak, bu verileri gidonlara aktarmak için Session kullandım. Özünde

var clock = 10; 

var timeLeft = function() { 
    if (clock > 0) { 
    clock--; 
    Session.set("time", clock); 
    return console.log(clock); 
    } else { 
    console.log("That's All Folks"); 
    return Meteor.clearInterval(interval); 
    } 
}; 

var interval = Meteor.setInterval(timeLeft, 1000); 

if (Meteor.isClient) { 
    Template.registerHelper("time", function() { 
    return Session.get("time"); 
    }); 
} 

Eğer zaman değerini Session anlatmak ve onun güncellenmiş zaman güncellenen zaman değeri ile yeniden çizmek için şablon sistemini anlatır: Başka durumda herkes javascript da

clock = 10 
timeLeft = -> 
    if clock > 0 
    clock-- 
    Session.set "time", clock 
    console.log clock 
    else 
    console.log "That's All Folks" 
    Meteor.clearInterval interval 

interval = Meteor.setInterval(timeLeft, 1000) 
if Meteor.isClient 
    Template.timer.time = -> 
    Session.get "time" 

bunu istiyor.

+0

Teşekkürler Akshat. Harika çalıştı. – ppedrazzi