registerHelper
implementation은 매우 간단합니다 : 도우미가 이미 정의되어있는 경우에는 검사가 없습니다
Handlebars.registerHelper = function(name, fn, inverse) {
if(inverse) { fn.not = inverse; }
this.helpers[name] = fn;
};
, 도우미는 단순히 Handlebars.helpers
객체에 기록하고 그렇게합니다.
불평하는 자신의 버전 registerHelper
을 추가하는 것을 막을 수있는 방법은 없습니다.
Handlebars.paranoidRegisterHelper = function(name, fn, inverse) {
if(name in this.helpers)
throw 'Someone is trying to redefine the ' + name + ' helper';
this.registerHelper(name, fn, inverse);
};
는 그런 예외를 발생하는 것과 같은 도우미 이름으로 두 번 paranoidRegisterHelper
를 사용 : 당신이 뭔가를 할 수 있습니다.
데모 : 당신이 이름으로 registerHelper
을 계속 사용하고 싶다면 http://jsfiddle.net/ambiguous/3Knj3/
, 다음 원숭이 전에 그것은 단지 안전에 대한 참조는 패치 :
var registerHelper = Handlebars.registerHelper;
Handlebars.registerHelper = function(name, fn, inverse) {
if(name in this.helpers)
throw 'Someone is trying to redefine the ' + name + ' helper';
registerHelper.apply(this, arguments);
};
데모 : http://jsfiddle.net/ambiguous/hUu2r/