我编写了使用带有firebase的Ionic Framework创建用户帐户的代码但由于某种原因,电子邮箱返回未定义,而密码框工作正常 - 他们两者的方式几乎相同。继承人我的HTML:
<ion-view view-title="Create Account">
<form name="form" novalidate="" ng-submit="createUser(form)">
<div class="list">
<label class="item item-input">
<span class="input-label">Email:</span>
<input type="text" ng-name = "email" ng-model="form.email" ng-minlength="5" ng-maxlength="20" required>
</label>
<div class="error-container">
<div ng-messages-include="error-list.html"></div>
</div>
<label class="item item-input">
<span class="input-label">Password</span>
<input type="password" ng-name = "password" ng-model="form.password" ng-minlength="5" ng-maxlength="20" required>
</label>
<div class="error-container last-error-container">
<div ng-messages-include="error-list.html"></div>
</div>
</div>
<button class="button button-full button-positive" type="submit">
Create Account
</button>
</form>
继承控制器类 - 当表单提交时,视图在控制器中调用此函数:
$scope.createUser = function(form) {
console.log("Email: " + form.email);
console.log(form.password);
var information = {
email: form.email,
password: form.password
};
Settings.createUser(form.email, form.password);
};
如你所见,我有2个console.logs。第一个总是返回&#39;电子邮件:未定义&#39;第二个返回我输入的密码,因此密码有效但电子邮件输入框无效。然后,对Settings.createUser的调用将继续失败,因为电子邮件未定义。
我错过了什么?
提前致谢。
答案 0 :(得分:0)
在$ scope.createUser函数中,尝试访问这样的元素,
this.email
this.password
而不是form.email
和form.password
。这是一个关于plunkr的链接,我认为它可以完成你正在寻找的东西。另外,请查看表格上的AngularJS文档,以及一些有用的信息,以帮助您。
答案 1 :(得分:0)
OH - 我想通了......这是ng-maxlength =&#34; 20&#34;。我意识到如果我输入asdf@hotmail.com它会接受它但不是我正在测试它的输入是&#39; mattang5280@hotmail.com'。原因是因为第二个字符超过20个字符因此它将返回undefined。