0

こんにちは、Firebase をありがとうございます。

私はAngularJSアプリケーションの展開に関する本を書いています.Angularfire-seedとIonic Frameworkのマッシュアップはほとんど機能しており、読者が展開するための例として提供されます. ログイン ビューで ng-cloak ディレクティブを使用すると、次のようにログイン フォームが壊れることを除いて、すべてがバニラの Angularfire-seed チャット アプリとして機能します。

3 つの要素が ng-cloak ディレクティブを利用します。[アカウントの作成] ボタンと [キャンセル] ボタンとパス入力の確認。

  1. 前述の要素からng-cloaks を削除すると、createMode インタラクションは意図したとおりに機能しますが、フォームは送信されません (「電子メール アドレスを入力してください」というエラーが表示されます)。
  2. これらの 3 つの要素に ng-cloaks を残すと、createMode インタラクションが失敗し、「電子メール アドレスを入力してください」というエラーが再びスローされます。

上記の問題のいずれについても、DevTools コンソールにエラーはなく、必要な依存関係はすべて整っています ( Batarangによると)。すべての Ionic ビュー コードを削除しようとし、ログイン ビューをシード バージョンに戻しました。すべてが意図したとおりに機能します...ただし、これが Ionic 内で機能する必要があることを除きます。

module.simpleLoginToolsの要旨を見つけました& Ionic フレームワーク内で使用された場合、言及された ng-cloak への変更がこの問題を引き起こしているかどうか疑問に思っていますか?

私のコードはGitHubでアクセスでき、デプロイされた例は @ http://zachariahmoreno.com/portfolio/krakn/#/krakn/homeでアクセスできます

4

1 に答える 1

0

したがって、この問題は simpleLoginTools が原因ではなく、うまく機能することがわかりました。この問題は、私が気付いていなかった Ionic の分離スコープの多用が原因でした。

$scope.data = {
        "email"      : null,
        "pass"       : null,
        "confirm"    : null,
        "createMode" : false
}

解決策は、ログイン資格情報を $scope.data オブジェクト内にネストしてから、新しいネスト構造に適合するようにログイン関数を変更することでした。

$scope.login = function(cb) {
        $scope.err = null;
        if( !$scope.data.email ) {
           $scope.err = 'Please enter an email address';
        }
        else if( !$scope.data.pass ) {
           $scope.err = 'Please enter a password';
        }
        else {
           loginService.login($scope.data.email, $scope.data.pass, function(err, user) {
              $scope.err = err? err + '' : null;
              if( !err ) {
                 cb && cb(user);
              }
           });
        }
};
于 2014-04-04T22:06:14.880 に答える