Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
197 views
in Technique[技术] by (71.8m points)

javascript - Evaluate DustJS variables from jquery

I want to append some HTML containing DustJS variables using jQuery. Here is what I am trying to do in jQuery:

$(document).on('ready', function(){
    $("tr").click(function(){
        $(this).after('<tr class="row-details">
                          <td></td>
                          <td colspan="4">
                            <table class="sortable draggable">
                              <thead>
                                  <tr>
                                      <th class="col-itemName">Item Name</th>
                                      <th class="col-quantity">Quantity</th>
                                      <th class="col-rate">Rate</th>
                                      <th class="col-amount">Amount</th>
                                  </tr>
                              </thead>
                              <tbody>
                                  {#items}
                                    <tr>
                                      <td>{.item.itemName}</td>
                                      <td>{.quantity}</td>
                                      <td>{.rate}</td>
                                      <td>{@math key="{.quantity}" method="multiply" operand="{.rate}"/}</td>
                                    </tr>
                                  {/items}
                              </tbody>
                            </table>
                          </td>
                        </tr>');
    });
  });

Here is my output:

enter image description here

How do I evaluate those variables???

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
$(document).on('ready', function () {
    $("tr").click(function () {
        var self = this,
            templateData = {}; // some set of data you want to render in the template

        dust.render(templateString, templateData, function (err, out) {
                if (err && typeof console !== 'undefined' && console.error) {
                    console.error(err);
                }

                $(self).after(out);
        });
    });

    var templateString = '<tr class="row-details">
                          <td></td>
                          <td colspan="4">
                            <table class="sortable draggable">
                              <thead>
                                  <tr>
                                      <th class="col-itemName">Item Name</th>
                                      <th class="col-quantity">Quantity</th>
                                      <th class="col-rate">Rate</th>
                                      <th class="col-amount">Amount</th>
                                  </tr>
                              </thead>
                              <tbody>
                                  {#items}
                                    <tr>
                                      <td>{.item.itemName}</td>
                                      <td>{.quantity}</td>
                                      <td>{.rate}</td>
                                      <td>{@math key="{.quantity}" method="multiply" operand="{.rate}"/}</td>
                                    </tr>
                                  {/items}
                              </tbody>
                            </table>
                          </td>
                        </tr>';
});

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...