2016-06-08 5 views
2

Я довольно новичок в Ember. Когда я нажимаю кнопку «Отправить», консоль показывает, что this.getProperties возвращает undefined как для ввода электронной почты, так и для ввода пароля. Я не уверен, что здесь отсутствует. Вход - это маршрут.ember form in route возвращает 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); 
      }); 
     } 
    } 
}); 

ответ

4

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

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