0

嗨,感谢 Firebase,它很棒。

我正在写一本关于部署 AngularJS 应用程序的书,并且有一个 Angularfire-seed 和 Ionic 框架的主要工作混搭,它将作为读者部署的示例。除了登录视图对 ng-cloak 指令的使用以下列方式破坏登录表单之外,一切都像普通的 Angularfire-seed 聊天应用程序一样工作。

三个元素使用 ng-cloak 指令;创建帐户和取消按钮和确认通过输入。

  1. 如果我从上述元素中删除 ng-cloaks,则 createMode 交互按预期工作,但表单不会提交(显示“请输入电子邮件地址”错误)。
  2. 如果我将 ng-cloaks 留在这 3 个元素上,则 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 回答