在Ember中将把手插入DOM

时间:2015-06-16 13:25:18

标签: javascript ember.js handlebars.js

我正在生成一个复选框列表&基于来自服务器的数据的单选按钮。该页面是使用Ember的Handlebars模板。要在页面上生成我的列表,我使用以下代码行:

document.getElementById('radioList').innerHTML = newHtml;

如果newHtml设置为:

,则此方法可以正常工作
<li><input type="radio" id="radio1" name="radio /><label for="radio1">List item one</label></li>

但是,我希望根据选择或取消选择的这些单选按钮(或复选框)触发事件 - 并且在一些谷歌搜索之后,似乎使用Handlebars帮助程序是可行的方法。但是当我尝试使用把手插入单选按钮时,newHtml设置为:

<li>{{input type="radio" id="radio1" name="radio }}<label for="radio1">List item one</label></li>

文本只是出现而不是单选按钮本身。进一步研究这似乎表明我插入的Handlebars模板需要重新编译?我可能错了,但我花了很多时间寻找这个问题的答案,似乎无法找到它们。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

这可以帮助您使用jQuery执行此操作。

使用按钮触发

<h2>Click and select radio button</h2>
<input type="button" id="btn" value="Generate"/>
<input type="hidden" value="1" id="hid" />

<强> JQUERY

$("#btn").click(function(){
    var generatedradios=$("#hid").val();

    var str='<input type="radio" class="generated" data-generated="'+generatedradios+'" id="radio1" name="radio" />';
    $("#hid").val(Number(generatedradios)+1);
    $("body").append(str);
});

$(document).on("change",".generated",function(){
   alert($(this).attr("data-generated")); 
});

<强> FIDDLE

http://jsfiddle.net/Isakkiraj/wLg1p8as/