我正在尝试在Ember中实现动态表单。我希望用户能够从下拉列表中选择一个选项并将其添加到表单中。此外,每个添加的字段都应该有一个“x”,用于从表单中删除元素。
我已经把一些似乎工作的东西放在一起(JSFiddle)但是每当删除一个添加的表单元素(单击它旁边的x)时,我在控制台中出现一个错误:“Uncaught TypeError:无法读取未定义的属性'handler'。
我认为它可能与附加到“a”标签的把手“动作”助手有关。我不确定。
下面是单击插入的输入元素旁边的“x”时调用的delete函数示例。
deleteOption: function (event) {
this.removeChild(event);
this.rerender();
},
,这是添加新输入元素时使用的“newOption”视图的模板(点击“+”按钮后)
<script type="text/x-handlebars" data-template-name="newOption">
<p>
<label {{bindAttr for="view.name"}}>{{view.label}}</label>
<br /><input class="input-medium option" {{bindAttr id="view.name" name="view.name"}} type="text" maxlength="5" />
<a href="#" class="delete addsub" {{bindAttr id="view.name"}} {{action deleteOption view target="view.parentView" }}>X</a>
</p>
</script>