2016-03-19 13 views
0

Ben borsa taklit eden küçük, SPA oyunu yapıyorum. Fiyat ve davranışları etkileyen birçok değişken vardır, ancak nihayetinde çekirdek, oyunun çalıştığı her şey için geçerli olan sınırlı bir değişken kümesidir. Bu yüzden bu değerleri global olarak saklamak istiyorum.Genel Meteor değişkenlerini şablonlara nasıl aktarabilir ve bunlara erişebilir ve kullanabilirim?

Yani, ben bunları kullanmak, böylece şablonuna bu globalsi getirmek nasıl çalışamaz. Yaptığımın altında hacky yolunu gösterdim, ancak işten çıkarıyor. Dokümantasyonu okudum ve bunun nasıl düzgün bir şekilde yapılacağını net bir şekilde göremiyorum. İşte bu var:

istemci/accounts.js

if (Meteor.isClient) { 

    Template.bankAccounts.BANK_ACCOUNTS = function(){ 
    return BANK_ACCOUNTS; 
    } 

} 

istemci/rogue.html (Bu taban HTML sayfası)

<head> 
    <title>rogue</title> 
</head> 

<body> 
    <h1>Rogue</h1> 
    {{ > bankAccounts }} 
</body> 

<template name="bankAccounts"> 
    <p>Trading Account: {{ BANK_ACCOUNTS.trading }}</p> 
    <p>Loan Account: {{ BANK_ACCOUNTS.offshore }}</p> 
    <p>Offshore Account: {{ BANK_ACCOUNTS.loan }}</p> 
    <p>Total Holdings: {{ BANK_ACCOUNTS.holdingsValue }}</p> 
    <p>Net Worth: {{ BANK_ACCOUNTS.netWorth }}</p> 
    <button>Sleep</button> 
</template> 

lib/globals.js

BANK_ACCOUNTS = { 
    trading: 100, 
    offshore: 200, 
    loan: 300, 
    holdingsValue: 4000, 
    netWorth: 0 
} 
onlar doğru bir şekilde yüklendikten sonra bir düğme click olayı kullanırken

Ayrıca, bunlara erişmek için sözdizimi nedir? Herhangi bir yardım takdir!

Teşekkür Tom

uygulamanızın globaller için rasyonel olan ve olmayan dağınık yapıyı istiyorsanız
+0

Birden çok şablonda kullanılan, değişebilen, her bir kullanıcıya özgü olan ve kalıcı olmalarına gerek olmayan bir dizi global değişken mi istiyorsunuz? Değilse, yorumumda yanlış olanı düzeltin ve size bir cevap vereceğim. –

cevap

1

Sadece genel değişkenin ile gitmek için küresel bir yardımcı oluşturun:

Template.registerHelper('BANK_ACCOUNTS',function(){ 
    return BANK_ACCOUNTS; 
}); 

Sonra herhangi şablonda {{BANK_ACCOUNTS.key}} kullanabilirsiniz.

+0

Merhaba Michel, bunun için teşekkürler! Bunun en iyi şekilde yaşamanın yapısal olduğu bir dosya var mı? – Thomas

+0

Sadece '/ client' içine koyunuz –

+0

Sizlersiniz. İyi çalıştı. Teşekkürler. – Thomas

İlgili konular