форма ember в маршруте возвращает undefined

Я новичок в Ember. Когда я нажимаю кнопку «Отправить», консоль показывает, что this.getProperties возвращает значение undefined для ввода адреса электронной почты и пароля. Я не уверен, чего здесь не хватает. Логин - это маршрут.

login.hbs:

<div class="login">
    <div class="login-info">
      <b>LOGIN TO PROCEED.</b>
    </div>
    <div class="form">
      <form {{action 'authenticate'}} on='submit'>
          <label for="email"><small>EMAIL</small></label>
          <br>
          {{input value=email placeholder='Enter Email' class='form-control' type='text'}}
          <br>
          <label for="password"><small>PASSWORD</small></label>
          <br>
          {{input value=password placeholder='Enter Password' class='form-control' type='password'}}
          <br>
          <div class="login-button">
              <button type="submit">
              Login 
          </button>
          </div>
      </form>
   </div>
</div>

login.js

import Ember from 'ember';

export default Ember.Route.extend({
    session: Ember.inject.service('session'),
    actions: {
        authenticate() {
            let {email, password} = this.getProperties('email','password');
            Ember.Logger.info("email: ",email," password: ",password);\\this shows undefined for both email and password
            this.get('session').authenticate('authenticator:oauth2', email, password).then(() => {
                Ember.Logger.info("login successful");
            }, (err) => {
                Ember.Logger.info("login unsuccessful. message: ",err.errors);
            });
        }
    }
});

person haitham    schedule 08.06.2016    source источник


Ответы (1)


Свойства, которые вы используете в шаблонах, на самом деле являются частью контроллера, а не маршрута. Поэтому, если вы попытаетесь записать this.controller.get('email) в свой маршрут, вы сможете получить правильное значение.

person Igor    schedule 08.06.2016