0

我正在使用Ionic. 在尝试将input元素绑定到$scopevar 时,我变得不确定。

SignupCtrl.js:

angular.module('SUSU.controllers', [])
.controller('SignupCtrl',
    function ($scope) {

        /* Form entries */
        $scope.signupForm = {
            email: "",
            emailConfirm: ""
        };
});

注册.html:

 <label class="item item-input">
        <input type="email" placeholder="Email" ng-model="signupForm.email">
 </label>

应用程序.js:

angular.module('SUSU', ['ionic','SUSU.controllers'])
.config(function ($stateProvider, $urlRouterProvider) {
// Set and define states
$stateProvider
    ....
    .state('tabs.signup', {
        url: '/signup',
        views: {
            'login-tab': {
                templateUrl: 'templates/signup.html',
                controller: 'SignupCtrl'
            }
        }
    });

在调试时,我注意到signupForm.email在将文本插入电子邮件输入后未定义的值。我该如何绑定这两个,我做错了什么?

4

2 回答 2

1

伙计们,我不敢相信我为此浪费了这么多时间……这是type="email"造成问题的人。由于某种原因,它不起作用。当我改变它时,type="text"它可以流畅地工作。

阅读更多

于 2014-12-17T19:43:55.747 回答
0

可能有更好的方法来做到这一点,但实现您想要的一种方法是执行以下操作:

在您的 signup.html 中添加一个 ng-change 到您的输入:

<label class="item item-input">
    <input type="email" placeholder="Email" ng-model="signupFormEmail" ng-change="updateEmail(signupFormEmail)">
</label>

然后在您的控制器中向 $scope 添加一个方法,该方法将更新您的 signupForm 电子邮件属性:

$scope.updateEmail = function(email){
    $scope.signupForm.email = email;
}
于 2014-12-16T20:17:03.067 回答