模板/ module.hbs
<form class="" method="post" {{ action "step1" on="submit"}}>
{{input type="email" value=email}}
{{input type="checkbox" checked=permission}}
{{input type="submit" value="next"}}
</form>
如何在路径
中的对象(如model.email和model复选框)中访问电子邮件和复选框值路由/ module.js
export default Ember.Route.extend({
model() {
return this.store.createRecord('wizard');
},
actions: {
step1(){
alert(this.controller.get('model.email')); // returns undefined
// get form values like model.email model.checkbox
},
}
模型/ wizard.js
export default DS.Model.extend({
email: DS.attr('string'),
permission: DS.attr('boolean')
});
更新: [[提醒返回未定义]]
答案 0 :(得分:3)
首先,您必须创建模型。假设你正在研究模型user
//routes/module.js
export default Ember.Route.extend({
model() {
return this.store.createRecord('wizard');
},
actions: {
step1(){
this.controller.get('model.email')// you will get email value here.
// get form values like model.email model.checkbox
}
}
然后在模板中你必须使用相同的格式
//templates/module.hbs
<form class="" method="post" {{ action "step1" on="submit"}}>
{{input type="email" value=model.email}}
{{input type="checkbox" checked=permission}}
{{input type="submit" value="next"}}
</form>
答案 1 :(得分:0)
如果您不想对最简单的请求使用模型,则可以使用jQuery的serialize
方法。
btnQueryClicked() {
const $form = $('.bar-query-query');
const params = $form.serializeArray();
// convert parameters to dictionary
const paramsDict = {};
params.forEach((param) => {
paramsDict[param['name']] = param['value'];
});
$.post('/query', paramsDict)
.done((data) => {
console.log(data);
});
},
上面的代码是我用来制作最简单的查询请求,仅用于数据显示。 (这不是那个优点,但你明白了)
对我来说,仅为一个简单的请求创建一个模型太重了,无论如何都不需要持久化。