Ionic - 来自电子邮箱的数据返回undefined

时间:2016-01-11 01:54:12

标签: javascript angularjs ionic-framework

我编写了使用带有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的调用将继续失败,因为电子邮件未定义。

我错过了什么?

提前致谢。

2 个答案:

答案 0 :(得分:0)

在$ scope.createUser函数中,尝试访问这样的元素,

this.email
this.password

而不是form.emailform.password。这是一个关于plunkr的链接,我认为它可以完成你正在寻找的东西。另外,请查看表格上的AngularJS文档,以及一些有用的信息,以帮助您。

http://plnkr.co/edit/1ZFvLHLSXgkqQVNHCGMb?p=preview

https://docs.angularjs.org/guide/forms

答案 1 :(得分:0)

OH - 我想通了......这是ng-maxlength =&#34; 20&#34;。我意识到如果我输入asdf@hotmail.com它会接受它但不是我正在测试它的输入是&#39; mattang5280@hotmail.com'。原因是因为第二个字符超过20个字符因此它将返回undefined。