javascript - Javascript 可以写在 .edge 文件中吗?

标签 javascript adonis.js

我刚开始学习 Adonis.js,我想知道是否可以在 .edge 文件中编写 Javascript?我找到了关于如何动态添加表格行的教程 ( here ),我想在我的 Adonis.js 项目中实现它。我在 <script> 中添加了编码标签,但当我单击“添加”按钮时没有任何反应。有谁知道如何解决这个问题?或者对此还有其他解决方案吗?

提前感谢您的帮助。

@layout('main')

@section('content')
    <a href="/">Go back</a>
    <hr>

    <h1>Create Club</h1>

    <form action="/clubs/create" method="POST">

        {{ csrfField() }}

        <div class="form-group">
            <label>Club Name</label>
            <input type="text" name="clubName" class="form-control" value="{{ old('clubName', '') }}">
            {{ elIf('<span class="text-danger">$self</span>', getErrorFor('clubName'), hasErrorFor('clubName')) }}
        </div>

        <div class="form-group">
                <label>Club Description</label>
                <textarea name="clubDesc" class="form-control">{{ old('clubDesc', '') }}</textarea>
                {{ elIf('<span class="text-danger">$self</span>', getErrorFor('clubDesc'), hasErrorFor('clubDesc')) }}
        </div>

        <br>

        <table class="table order-list">
            <thead>
                <tr>
                    <td>Name</td>
                    <td>Position</td>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>
                        <input type="text" name="memberName" class="form-control"/>
                    </td>
                    <td>
                            <input type="text" name="position" class="form-control"/>
                    </td>
                </tr>
            </tbody>
            <tfoot>
                <tr>
                    <td colspan="5" style="text-align: left;">
                        <input type="button" class="btn btn-sm btn-block" id="addrow" value="Add Member"/>
                    </td>
                </tr>
            </tfoot>
        </table>

        <button class="btn btn-primary" type="submit">Create!</button>

    </form>

    <script>
        $(document).ready(function () {
            var counter = 0;

            $("#addrow").on("click", function () {
                var newRow = $("<tr>");
                var cols = "";

                cols += '<td><input type="text" class="form-control" name="memberName' + counter + '"/></td>';
                cols += '<td><input type="text" class="form-control" name="position' + counter + '"/></td>';

                cols += '<td><input type="button" class="ibtnDel btn btn-md btn-danger "  value="Delete"></td>';
                newRow.append(cols);
                $("table.order-list").append(newRow);
                counter++;
            });

            $("table.order-list").on("click", ".ibtnDel", function (event) {
                $(this).closest("tr").remove();       
                counter -= 1
            });

        });

        function calculateRow(row) {
            var price = +row.find('input[name^="price"]').val();
        }

        function calculateGrandTotal() {
            var grandTotal = 0;
            $("table.order-list").find('input[name^="price"]').each(function () {
                grandTotal += +$(this).val();
            });
            $("#grandtotal").text(grandTotal.toFixed(2));
        }
    </script>

@endsection

最佳答案

来自docs :

in order to write raw HTML, you must wrap it inside {{{ }}}

这表明你应该能够做到*:

{{{
<script>
   // .. JavaScript here
</script>
}}}

*可能还有其他可能更好的方法。我以前从未使用过模板引擎,但上面的内容似乎可以满足您的需求。

关于javascript - Javascript 可以写在 .edge 文件中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54068059/

相关文章:

adonis.js - 阿多尼斯问题 : error: `migration:run` is not a registered command

javascript - 未捕获的语法错误 : Unexpected token C in JSON at position 0

javascript - 在 ReactJS 中使用 react 聊天元素

javascript - 如何在 Owl Carousel 中只显示单个项目?

javascript - 尝试扩展 jQuery

node.js - 在 C9.io 上运行 AdonisJS

javascript - 如何更新迁移中的约束

node.js - 从模型定义更新迁移文件的 NodeJS ORM 框架

javascript - 搜索输入无法正常工作

javascript - WordPress 编辑器在复制和粘贴时如何保留文本格式?