2016-09-17 40 views
0

我試圖創建一個控制器函數來提交與firebase的註冊,但似乎來自範圍(controllerAs: $reg)的變量在promise內部更新時沒有約束力。當firebase承諾更改時,作用域變量沒有綁定

$reg.loading更改爲真正,它是正確的模板更新,但如果改爲,範圍變量在控制器更新,但模板忽略它。

$reg.submit =() => { 
    $reg.loading = true; 

    firebase.auth().createUserWithEmailAndPassword($reg.user.email, $reg.user.password) 
    .catch(error => { 
     $reg.loading = false; 
    }); 
}; 

模板僅僅是在我打電話的時候提交按鈕$reg.submit()功能的形式被點擊(既NG-提交 & NG單擊測試)。

回答

1

最後發現我的錯誤。

我用firebase通用對象,約我使用的角度是不知道,我應該用什麼爲AngularFire庫對象$firebaseAuth(注射控制器上)。

這樣我會擔心自己做的$消化迴路角承諾:

$reg.submit =() => { 
    $reg.loading = true; 

    $firebaseAuth.$createUserWithEmailAndPassword($reg.user.email, $reg.user.password) 
    .catch(error => { 
     $reg.loading = false; 
    }); 
}; 
1

使用$範圍。$適用()

$scope.$apply(function() { 
    $reg.loading = false; 
}); 
0

嘗試改變範圍rootScope。

+0

這並不提供答案的問題。一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你將能夠[評論任何職位](http://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/13705030) – cartant

+0

我確實試着回答這裏提出的問題。我沒有聲譽,否則會評論。並且請不要阻止對新事物感興趣的人。 @cartant –