可以将Javascript写入.edge文件吗?

时间:2019-01-07 02:55:52

标签: 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

1 个答案:

答案 0 :(得分:0)

来自docs

  

为了编写原始HTML,您必须将其包装在{{{ }}}

这表明您应该能够*:

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

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