我的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);
});
}
}
});
答案 0 :(得分:1)
在this.get()
中使用Route
时,this
是Route
。在{{input value=password}}
之类的模板中使用表达式时,变量位于控制器中。
从Route
开始,您需要以这种方式访问这些变量:
this.controller.get('password')
希望这有帮助。