Javascript 没有参数,无法解析自定义把手辅助对象

Javascript 没有参数,无法解析自定义把手辅助对象,javascript,backbone.js,requirejs,handlebars.js,Javascript,Backbone.js,Requirejs,Handlebars.js,我正在创建把手辅助对象,其形式如下: define(['Handlebars'], function (Handlebars) { Handlebars.registerHelper("myHelper", function (options) { console.log('myHelper'); if (*condition*) { console.log('myHelper False'); return

我正在创建把手辅助对象,其形式如下:

define(['Handlebars'], function (Handlebars) {
    Handlebars.registerHelper("myHelper", function (options) {
        console.log('myHelper');
        if (*condition*) {
            console.log('myHelper False');
            return options.inverse(this);
        } else {
            console.log('myHelper True');
            return options.fn(this);
        }
    });
});
如您所见,我使用的是require.js。我还将其用作Backbone.js应用程序的一部分。在模板中,辅助对象的调用方式如下:

{{#myHelper}}
<!-- Some HTML -->
{{else}}
<!-- Some HTML -->
{{/myHelper}}
模板:

{{#myHelper "string"}}
<!-- Some HTML -->
{{else}}
<!-- Some HTML -->
{{/myHelper}}
{{{#myHelper“string”}
{{else}
{{/myHelper}}
我用的是车把v1.0.0。这是2.0.0中提到的吗?这不是拦截器,但如果可能的话,我显然不希望使用伪参数。

这是您需要的帮助程序。把手-1.0。使用钢筋混凝土1。还尝试了车把-1.3.0-工作良好

HTML

<script id="topLevel" type="text/x-handlebars-template">
    {{#myHelper}}
        it's truthy
    {{else}}
        it's falsy
    {{/myHelper}}
</script>
因此,您的问题可能会出现:

已过期的库,或者您正在尝试在注册帮助程序之前使用它。Require.js异步加载库/文件,将Handlebar作为依赖项调用。例如:

define(function(require){
    var yourObj = function() {
      require(['handlebars'], function (Handlebars) {
      // use Handlebars here
      });
    };
    return yourObj;
}); 
希望能有所帮助

Handlebars.registerHelper('myHelper', function (options) {
    if (true) {
        console.log("It's true");
        return options.fn(this);
    }
    console.log("It's false");
    return options.inverse(this);
});

var _template =  Handlebars.compile($('#topLevel').html());
$('body').append(_template());
define(function(require){
    var yourObj = function() {
      require(['handlebars'], function (Handlebars) {
      // use Handlebars here
      });
    };
    return yourObj;
});