简体   繁体   English

Laravel Blade用jQuery模板化

[英]Laravel Blade templating with jQuery

I have a piece of code which adds AJAX fetched data to the accordion container, which looks now like this: 我有一段代码将AJAX提取的数据添加到手风琴容器中,现在看起来像这样:

if (document.getElementById('accordion_' + id) == null) {
    $("#collapse_group_container").html(
        "<div class='panel-group active_subcategory_accordion' id='accordion_" + id + "' data-category-id='" + id + "' data-category-name='" + name + "'>" +
        "<div class='panel panel-primary'><div class='panel-heading'>" +
        "<h4 class='panel-title'>" +
        "<a data-toggle='collapse' data-parent='#accordion' href='#collapse_" + id + "'>" + name + "</a>" +
        "<a class='pull-right' style='display:block' onclick='deleteCollapseGroup(" + id + ")'>" +
        "X" +
        "</a></h4></div><div id='collapse_" + id + "' class='panel-collapse collapse in'>" +
        "<div class='panel-body'>" +
        "<div class='sk-circle'>" +
        "<div class='sk-circle1 sk-child'></div>" +
        "<div class='sk-circle2 sk-child'></div>" +
        "<div class='sk-circle3 sk-child'></div>" +
        "<div class='sk-circle4 sk-child'></div>" +
        "<div class='sk-circle5 sk-child'></div>" +
        "<div class='sk-circle6 sk-child'></div>" +
        "<div class='sk-circle7 sk-child'></div>" +
        "<div class='sk-circle8 sk-child'></div>" +
        "<div class='sk-circle9 sk-child'></div>" +
        "<div class='sk-circle10 sk-child'></div>" +
        "<div class='sk-circle11 sk-child'></div>" +
        "<div class='sk-circle12 sk-child'></div>" +
        "</div>" +
        "</div></div></div></div>"
    );
}

and although I think this may be complicating, the bigger issue I am facing is that I actually need to repeat that complete code on other place. 尽管我认为这可能会很复杂,但我面临的更大问题是我实际上需要在其他地方重复完整的代码。 I am wondering if it is possible to make something like this: 我想知道是否可以做这样的事情:

if (document.getElementById('accordion_' + id) == null) {
    $("#collapse_group_container").html(
        @include('partials/accordion', ['id' => id, 'name' => name])
    );
}

or similar, to make use of code reuse. 或类似,以利用代码重用。 I would like to include a file which has standard html formatting without quotes and pluses. 我想包含一个没有引号和加号的标准html格式的文件。

You can create a javascript function as a template: 您可以创建一个javascript函数作为模板:

var accordionTemplate = function(id, name) {
    // your code, returns html string
};

if (document.getElementById('accordion_' + id) == null) {
    $("#collapse_group_container").html(
        accordionTemplate(id, name)
    );
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM