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知道刷新按钮的状态?
答
感谢Surajck,我做了它的工作,将其设置里面$应用,就像这样:
$scope.$apply(function() {
$scope.signing = false;
});
附上'$ scope.signing = FALSE;'一个'$范围内$ apply'块。这可能会解决问题 – surajck
如果您使用'$ scope.signing = {“result”:false}'并将您的按钮更改为'ng-disabled =“signing.result”'应该有效。基本上,使用原始数据(布尔,数字,字符串)而不是复杂类型(数组,对象)会给出意想不到的结果。 – grimmdude
非常感谢surajck,增加了$ apply,确实让它工作 –