NG-禁用,但是当我改变值不刷新

问题描述:

我有以下按钮:NG-禁用,但是当我改变值不刷新

<button id="facebook" type="button" ng-disabled="signing" ng-click="fblogin()">FACEBOOK</button> 
    <button id="google" type="button" ng-disabled="signing" ng-click="googleLogin()">GOOGLE</button> 

例如,当我按下按钮,谷歌它这样做:

$scope.googleLogin = function() { 
    $scope.signing = true; 
    document.getElementById('googleAuth').click(); 
}; 

我GAPI这样做:

gapi.load('auth2', function(){ 
         // Retrieve the singleton for the GoogleAuth library and set up the client. 
         auth2 = gapi.auth2.init({ 
         client_id: 'MY ID', 
         cookiepolicy: 'single_host_origin', 
         scope: 'email', 
         // Request scopes in addition to 'profile' and 'email' 
         //scope: 'additional_scope' 
         }); 
         attachSignin(document.getElementById('googleAuth')); 
        }); 

而且按钮被禁用,这是伟大的,因为我改变$scope.signing为TRUE。

但是当我回来时,我这样做:$scope.signing = false;没有任何变化,按钮保持禁用状态。为什么它没有启用,当我将签名更改为false时,是否需要让html知道刷新按钮的状态?

+1

附上'$ scope.signing = FALSE;'一个'$范围内$ apply'块。这可能会解决问题 – surajck

+0

如果您使用'$ scope.signing = {“result”:false}'并将您的按钮更改为'ng-disabled =“signing.result”'应该有效。基本上,使用原始数据(布尔,数字,字符串)而不是复杂类型(数组,对象)会给出意想不到的结果。 – grimmdude

+0

非常感谢surajck,增加了$ apply,确实让它工作 –

感谢Surajck,我做了它的工作,将其设置里面$应用,就像这样:

$scope.$apply(function() { 
     $scope.signing = false; 
    });