๋๋ก๋ ํ
ํ๋ฆฟ์ ์ ์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ฉํฉ๋๋ค.
๋ช ๊ฐ์ง ์์๋ ๋ค์์ด ํฌํจ๋ ์ ์์ต๋๋ค.
๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ถ๊ฐํ๋ ๊ฒ์ด ๋ฉ์ง ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
var hbs = require("handlebars");
hbs.registerGlobal({
title: "myapp"
});
@global.title
, @title
๋๋ title
๋ฅผ ํตํด ๋ชจ๋ ํ
ํ๋ฆฟ์์ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
์๊ฐ?
๋๋ ์ด๊ฒ์ ๋ํด ๋ ์๊ฐํ๊ณ ์์๊ณ ์ธ๋ผ์ธ ๋์ฐ๋ฏธ๋ฅผ ๋ง๋๋ ๊ฒ์ด ๋น์ ์ด ์ํ๋ ๊ฒ์ ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
var hbs = require("handlebars");
var myGlobal = {
title: "myapp"
};
hbs.registerHelper('global', function(key){
return myGlobal[key];
});
{{! in your template }}
<div>{{global "title"}}</div>
๊ทธ๋ฆฌ๊ณ myGlobal
๋ก ๋ฌด์์ด๋ ํ ์ ์์ต๋๋ค.
๋น์ ์ ํ ์ ์์ต๋๋ค
define('myGlobal', function(){
return {
title: "myapp"
};
});
...
var myGlobal = require('myGlobal');
myGlobal['newKey'] = 'something';
...
var hbs = require("handlebars");
var myGlobal = require('myGlobal');
hbs.registerHelper('global', function(key){
return myGlobal[key];
});
๋น์ฐํ ํค๋ฅผ ๋ฎ์ด์ฐ๋ ๊ฒ๊ณผ ๊ฐ์ ๋จ์ ์ด ์์ง๋ง ๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค.
ํธ๋ค๋ฐ ์์ฒด ๋ด์์ ์ด๊ฒ์ ์ง์ํ๋ ค๋ฉด ์ ์ ์ด๋์ ์ํด ๋ง์ ์ค๋ฒํค๋๊ฐ ํ์ํฉ๋๋ค(IMO).
@rafde ์ ๋์ฐ๋ฏธ ์ ์์ด๋ ๋ฐ์ดํฐ ํ๋์ ์ ์ญ์ ์ ๋ฌํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ฌ๋ฌ ์ต์ ์ด ์์ผ๋ฉฐ ์ค์ ๋ก ์์์ ์ ์ํ ๊ตฌ๋ฌธ๊ณผ ํจ๊ป ์๋ํด์ผ ํฉ๋๋ค.
template(context, {data: {global: global}})
{{@global.foo}}
์ฐฝ์ ๋ชจ๋ ๊ฒ์ ๋
ธ์ถํด์ผ ํ์ง๋ง ๋๋ ์ด๊ฒ์ ํ
์คํธํ์ง ์์์ผ๋ฉฐ ์ด๊ฒ์ด ์ค์ ๋ก ์๋ํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
@kpdecker template(context, {data: {global: global}})
๋ ๋ช
์์ ์ผ๋ก ๋ฌธ์ํ๋์ด ์์ง ์์ต๋๋ค.
๋ด๊ฐ ๋ณธ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ template({}, {data: {level: Handlebars.logger.WARN}})
๊ทธ๋ฌ๋ ์ค๋ช ์ ์๋ ๋ ๋ฒ์งธ ๋งค๊ฐ ๋ณ์๋ฅผ ์ ๋ฌํ ์ ์๋ค๋ ์ธ๊ธ์ด ์์ต๋๋ค .
๋ฌธ์๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ๊ฐ ๋ง์ง๋ง ๊ฐ์ ์ ๋์์ด ๋๋ค๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ๊ด๋ฒ์ํ๊ฒ ํ ์คํธ๋์์ต๋๋ค: https://github.com/wycats/handlebars.js/blob/master/spec/data.js#L1
๋ณ์๊ฐ ์๋ ๊ฐ์ฒด์ ํค/๊ฐ ์์ ๋จ์ํ ์ ์ํ์ฌ ์ด๋ฅผ ์ํํ ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
glabalPair = {title: "Title"};
https://github.com/wycats/handlebars.js/blob/master/spec/data.js#L1 ์ด ๋ต์ด์์ต๋๋ค. ์ด๊ฒ์ ๋ซ์ง๋ง ๋ฌธ์๋ ์ฌ์ ํ ์ถ๊ฐ๋์ด์ผ ํฉ๋๋ค.
์์ง ๋ฌธ์ํ๋์ง ์์์ต๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@kpdecker
template(context, {data: {global: global}})
๋ ๋ช ์์ ์ผ๋ก ๋ฌธ์ํ๋์ด ์์ง ์์ต๋๋ค.๋ด๊ฐ ๋ณธ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์
template({}, {data: {level: Handlebars.logger.WARN}})
๊ทธ๋ฌ๋ ์ค๋ช ์ ์๋ ๋ ๋ฒ์งธ ๋งค๊ฐ ๋ณ์๋ฅผ ์ ๋ฌํ ์ ์๋ค๋ ์ธ๊ธ์ด ์์ต๋๋ค .