Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails使用gsp片段作为javascript函数的html模板_Javascript_Grails_Gsp - Fatal编程技术网

Grails使用gsp片段作为javascript函数的html模板

Grails使用gsp片段作为javascript函数的html模板,javascript,grails,gsp,Javascript,Grails,Gsp,我试图在应用程序上处理一对多表单映射 根据我创建的类似代码:然而,我不想把我的html放在javascript中,我想让一些东西可重用,所以我创建了一个小标记库来处理一对多关联。 此taglib接受gsp片段路径作为输入,该路径表示输入字段行,如下所示: <div class="form-group"> <div class="row row-product-option-values"> <div class="col-md-3 col-sm-3">

我试图在应用程序上处理一对多表单映射

根据我创建的类似代码:然而,我不想把我的html放在javascript中,我想让一些东西可重用,所以我创建了一个小标记库来处理一对多关联。 此taglib接受gsp片段路径作为输入,该路径表示输入字段行,如下所示:

<div class="form-group">
<div class="row row-product-option-values">
    <div class="col-md-3 col-sm-3">
        <g:textField name="product.options[<index>].name" class="form-control"></g:textField>
    </div>

    <div class="col-md-8 col-sm-8">
        <g:textField name="product.options[<index>].values" class="form-control"></g:textField>
    </div>
    <div class="col-md-1 col-sm-1">
        <a class="btn btn-link" type="button">
            <i class="fa fa-remove"></i>
        </a>
    </div>
</div>
现在最困难的部分是:我需要替换为一个js变量,每次我添加一个新的输入行时,我都可以增加这个变量,但我不知道怎么做。在这个过程的末尾,我需要一个类似的字符串

"<div class=\"form-group\"> <div class=\"row row-product-option-values\"> <div class=\"col-md-3 col-sm-3\"> <input type=\"text\" name=\"product.options[" + childCount +"].name\" class=\"form-control\" value=\"\" id=\"product.options[0].name\" /> </div> <div class=\"col-md-8 col-sm-8\"> <input type=\"text\" name=\"product.options[0].values\" class=\"form-control\" value=\"\" id=\"product.options["+ childCount +"].values\" /> </div> <div class=\"col-md-1 col-sm-1\"> <a class=\"btn btn-link\" type=\"button\"> <i class=\"fa fa-remove\"></i> </a> </div> </div></div>";
”;
有人知道如何完成这项任务吗

谢谢你的建议

卢卡

  • 使用AJAX:
  • 每当添加新行时,使用所需的控制器输入进行ajax调用,并从中呈现所需的模板。 现在用结果更新/追加现有的父div

  • 使用JavaScript

  • 在初始化期间,将html从模板存储到javascript变量。添加新行时,用当前行号替换占位符索引。

    是的,当然使用javascript字符串替换是一种方法,但是如果有更好的方法,则效果会更好
    "<div class=\"form-group\"> <div class=\"row row-product-option-values\"> <div class=\"col-md-3 col-sm-3\"> <input type=\"text\" name=\"product.options[" + childCount +"].name\" class=\"form-control\" value=\"\" id=\"product.options[0].name\" /> </div> <div class=\"col-md-8 col-sm-8\"> <input type=\"text\" name=\"product.options[0].values\" class=\"form-control\" value=\"\" id=\"product.options["+ childCount +"].values\" /> </div> <div class=\"col-md-1 col-sm-1\"> <a class=\"btn btn-link\" type=\"button\"> <i class=\"fa fa-remove\"></i> </a> </div> </div></div>";