角度形式需要在范围var显示之前提交两次

时间:2016-02-05 03:36:32

标签: html angularjs

根据firebase示例重置用户的密码:

reset: function (email) {
      var ref = new Firebase(FIREBASE_URL);
      ref.resetPassword({
         email: email
      }, function (error) {
         if(error) {
            $rootScope.message = '';

            switch(error.code) {
            case "INVALID_USER":
               $rootScope.error = "The specified user account does not exist.";
               break;
            default:
               $rootScope.error = "Error resetting password:" + error;
            }
         } else {
            $rootScope.error = '';
            $rootScope.message = "Thank you, you should receive an email containing your new password."
         }
      });

html页面包含以下内容:

<p ng-show="message">{{message}}</p>
<p ng-show="error">{{error}}</p>

奇怪的是,即使执行了重置方法,消息也只会在被调用两次后出现?

我尝试用$rootScope.apply()方法包装resetPassword回调的if / else,但没有改变任何内容。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

感谢Nishi的评论,通过在重置回调方法结束时添加$ rootScope。$ apply(),它有效。