0
基礎上火力樣品重置用戶密碼:角形式要求範圍VAR之前提交兩次顯示
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,但沒有改變任何內容。
我錯過了什麼?
你沒有足夠的HTML來理解爲什麼會發生這種情況,但它很可能與'$ rootScope'的用法有關。 'error'和'message'是原始類型,而不是對象,並且如果* actual *'$ scope'定義了'error'或'message',由於JavaScript Prototype繼承,它們將隱藏'$ rootScope'上的屬性。完全使用'$ rootScope'是一種代碼味道。 – Claies
在設置屬性後添加$ rootScope。$ apply()或$ rootScope。$ digest()。 – Nishi