Javascript 车把不接受物体

Javascript 车把不接受物体,javascript,handlebars.js,Javascript,Handlebars.js,车把拒绝合作。我有这个模板 <script id="edit_client_modal" type="text/x-handlebars-template"> <fieldset> <input type="text" class="" value="{{name}}" /> <input type="text" class="" value="{{email}}" /> <inpu

车把拒绝合作。我有这个模板

<script id="edit_client_modal" type="text/x-handlebars-template">

    <fieldset>

        <input type="text" class="" value="{{name}}" />
        <input type="text" class="" value="{{email}}" />
        <input type="text" class="" value="{{phone}}" />                        

    </fieldset>

但是,
输入
中没有填充值。这里出了什么问题?

您的模板正在查找3个属性:
{name:'',email:'',phone:''}

但是您传递的对象只有一个
选项
属性。因此,它无法找到这些值并将其留空

你可以:

  • 调整模板以使用
    选项
    块:

    
    {{{#带选项}}
    {{/与}}
    

  • 调整模板以使用正确的路径

    
    

  • 不要使用模板,调整javascript,使其不会将这些值包装在选项字段中:

    edit\u contact\u html=模板(当前数据)


您的数据是
选项的子项,而您的模板无法处理该子项。您可以将
{{{with options}}
添加到模板中,或者将原始数据
模板(当前_数据)
交给车把
{{{with options}}}
我应该直接将字符串
{{with options}}}
添加到模板顶部?那对我不起作用me@Malk一个比另一个有优势吗?@Malk第二个答案会是什么样的?
var tr = $(this).closest("tr");
var current_data = {
        "name": $.trim(tr.find("td.contact_name").text()),
        "email": $.trim(tr.find("td.contact_email").text()),
        "phone": $.trim(tr.find("td.contact_phone").text())
    }


var source = $("#edit_client_modal").html();
var template = Handlebars.compile(source); 
var options = {options: current_data};

edit_contact_html = template(options);