从路径ember获取表单值

时间:2017-10-19 20:28:16

标签: javascript ember.js

我的ember应用程序中有一个表单,此表单有一个操作路径。我想获取我的电子邮件和密码值并对它们做些什么。

但是,我无法使用this.get('email')获取值;我以为会工作的。如何获取值并在我的操作中使用它们?目前它只是将它们设置为空。

这是我的模板。

<div class='page-header'>
  <h1>Login</h1>
</div>
{{input
  type='text'
  class='form-control'
  value=email
  placeholder='email'
}}
{{input
  type='password'
  class='form-control'
  value=password
  placeholder='password'
}}
<button
  class='btn btn-default'
  {{action 'login'}}
>
  Login In
</button>

这是我的路线和行动。

export default Ember.Route.extend({
  firebaseApp: Ember.inject.service(),
  actions: {
    login() {
      const auth = this.get('firebaseApp').auth();
      let email = this.get('email') || '';
      let password = this.get('password') || '';
      auth.signInWithEmailAndPassword(email, password)
      .then(() => {
        console.log("signed in this works");
      })
      .catch(function (error) {
        console.log(error);
      });
    }
  }
});

1 个答案:

答案 0 :(得分:1)

this.get()中使用Route时,thisRoute。在{{input value=password}}之类的模板中使用表达式时,变量位于控制器中。

Route开始,您需要以这种方式访问​​这些变量: this.controller.get('password')

希望这有帮助。