我正在制作概念验证演示,我需要编写一个表单 View ,它可以让我将项目添加到我的内容数组中。我从外部加载此 View ,然后使用处理程序对其进行编译。我添加了一个提交方法并使用了 {{action}} 绑定(bind),但每次我单击提交按钮时,它都会重新加载页面。我错过了什么?
//模板
<form>
<div>
<label for="client">Client Name</label>
<input type="text" id="client" placeholder="Add client name" />
</div>
<div>
<button {{action "addClientSubmit" target="PM.addClientView"}}>Add Client</button>
</div>
<div>
<a href="#" {{action "closeWindow" target="PM"}}>close</a>
</div>
</form>
//查看代码
PM.addClientView = Ember.View.create({
templateName: 'addClient',
classNames: 'overlay',
addClientSubmit: function(e){
e.preventDefault();
console.log('submitting add client form');
console.log(a,b,c)
}
});
//最后,这是我将其添加到页面的方式
PM = Ember.Application.create({
loadView: function(view){
$.ajax({
url: viewPath,
success: function (template) {
if (!Ember.TEMPLATES[templateName]) {
Ember.TEMPLATES[templateName] = Ember.Handlebars.compile(template);
};
PM[view + 'View'].appendTo('body');
}
});
}
});
其他一切正常,但是当我单击提交按钮时,页面会重新加载。我确信我漏掉了一些东西,但我不知道它是什么。
最佳答案
您可能需要将 type="button"
添加到按钮标记中。默认值为 type="submit"
,它将触发表单提交。
这是一个 jsFiddle:http://jsfiddle.net/b2CTg/2/
关于ember.js - 使用 Ember.js 编写并提交表单 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10883597/