2016-04-06 5 views
1

шаблонов/module.hbsКак emberjs получают значения формы в объекте?

<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 и модель флажок) в пути

маршрутов/модуль. 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') 
}); 

Update: [[оповещения возвращает неопределенное значение]]

ответ

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> 
+0

Я обновил свой вопрос с вашими данными, но он продолжает (ember version 2.4.4) – Onur

+0

Я забыл model.email в шаблоне исправлено! благодаря – Onur

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

Код выше - это то, что я использую, чтобы сделать простейший запрос запроса только для отображения данных. (Это не то, что элегантно, но вы поняли идею)

Мне слишком тяжело создавать модель только для простого запроса, который в любом случае не нуждается в постоянстве.

Смежные вопросы