0

を使用して HTML Web アプリを作成していますIonicinput要素をvarにバインドしようとすると、$scope未定義になります。

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つをバインドするにはどうすればよいですか?何が間違っていますか?

4

2 に答える 2

1

みんな、私がそれについて多くの時間を無駄にしたなんて信じられないtype="email". 問題を引き起こしたのは誰だ. 何らかの理由で動作しません。に変更したところ、type="text"スムーズに動作しました。

続きを読む

于 2014-12-17T19:43:55.747 に答える
0

これを行うためのより良い方法があるかもしれませんが、目的を達成する 1 つの方法は、次のことです。

signup.html で、入力に ng-change を追加します。

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

次に、コントローラで、signupForm 電子メール プロパティを更新するメソッドを $scope に追加します。

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