在Ionic AngularJS中获取未定义的ngModel

时间:2014-12-16 19:48:28

标签: javascript html angularjs ionic

我正在使用Ionic编写HTML网络应用。在尝试将input元素绑定到$scope var时,我未定义。

SignupCtrl.js:

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

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

signup.html:

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

app.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的值。我如何绑定这两个以及我做错了什么?

2 个答案:

答案 0 :(得分:1)

伙计们我不敢相信我浪费了那么多时间...... 引起问题的是type="email"。由于某种原因它不起作用。当我将其更改为type="text"时,它的工作流畅。

Read more

答案 1 :(得分: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;
}