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);