首页 文章

我们可以注册一个写在外部文件上的自定义把手助手吗?

提问于
浏览
1

我正在尝试在我的应用程序中实现Handlebars模板 . 我的查询是,我们可以加载并注册写在外部文件上的自定义手柄助手吗?

以下代码工作正常,但帮助程序在页面内 .

$.post(baseURL,
    {
        struser:UserName,
        password:Password,
        alias:"GetData",
        parameters:""
    },
    function(data,status){
        if(status="success"){

            Handlebars.registerHelper('MenuHelper', function() {
                if(this.NextLevel == 1){
                    return '<a href="' + this.url + '">' + this.text + '</a>';
                };
            });

            var vdata = JSON.parse(data);
            var template = Handlebars.templates['ListMenu.tmpl'];
            $("#listItem").html(template(vdata));
            $("#listItem").listview("refresh");
        }else{
            alert(connectionError);
        };
    });
};

我想将这段代码移动到一个单独的文件中,并在需要时将其注册到主文件中 .

Handlebars.registerHelper('MenuHelper', function() {
    if(this.NextLevel == 1){
        return '<a href="' + this.url + '">' + this.text + '</a>';
    };
});

不知道如何完成这件事 . 尝试将此添加到模板文件中,但未成功 . 你能帮我解决这个问题吗?

提前致谢

1 回答

  • 1

    我对“mu太短”的方向所激发的热情引出了我的解决方案:-D

    我在一个单独的文件中创建了这个函数

    function MenuHelper() {
        if(this.NextLevel == 1){
            return '<a href="' + this.url + '">' + this.text + '</a>';
        };
    });
    

    并使用此单行在主文件中注册了帮助程序

    Handlebars.registerHelper("MenuHelper", MenuHelper);
    

    这就是我的完整代码的样子 . 再次感谢先生“亩太短”

    $.post(baseURL,
        {
            struser:UserName,
            password:Password,
            alias:"GetData",
            parameters:""
        },
        function(data,status){
            if(status="success"){
                Handlebars.registerHelper("MenuHelper", MenuHelper);
                var vdata = JSON.parse(data);
                var template = Handlebars.templates['ListMenu.tmpl'];
                $("#listItem").html(template(vdata));
                $("#listItem").listview("refresh");
            }else{
                alert(connectionError);
            };
        });
    };
    

相关问题