我正在使用angular和Parse.com,我遇到了一个问题:
我有一个“mainController”,它在所有的html文档中,以及一个带有一些页面和控制器的routeProvider。
function mainController($scope)
{
$scope.logeado = (Parse.User.current()!=null)
if (Parse.User.current()==null)
{
$scope.showuser=""
}
else
{
$scope.showuser=Parse.User.current().get('username')
}
$scope.logout = function()
{
Parse.User.logOut();
$scope.logeado = (Parse.User.current()!=null);
$scope.$apply();
}
};
这个控制器之一是“loginController”。在这个控制器中进行登录,但我的问题是: 如果我注销,该函数在maincontroller中,这个ng-show =“logeado”会因为变量在里面而改变,但是如果我登录logincontroller,我可以改变“Parse.User.current()”但是$ scope.logeado没有更新,我需要更新所有页面以查看更改。
如何更新de变量?
答案 0 :(得分:1)
解决问题的方法之一是实现模式观察器。让
Parse.User.current
通知他的州。
function mainController($scope){
Parse.User.current.onChange(function () {
$scope.logeado = (Parse.User.current()!=null);
if (Parse.User.current() == null) {
$scope.showuser=""
} else {
$scope.showuser=Parse.User.current().get('username')
}
});
$scope.logout = function() {
Parse.User.logOut();
};
};
答案 1 :(得分:0)
最后,我在mainController($scope)
:
$scope.login2= function(){
$scope.logeado = (Parse.User.current()!=null);
if (Parse.User.current() == null)
{
$scope.showuser=""
}
else
{
$scope.showuser=Parse.User.current().get('username')
}
};
并从loginController($scope)
开始调用它,因为$ scope.login2在此继承。