2016-09-17 45 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 –