以编程方式取消选中角度范围复选框

时间:2015-11-15 04:27:54

标签: angularjs

我试图取消选中使用ng-model绑定到范围变量的复选框。基本上下面的内容不会在2秒后取消选中。

HTML

<div ng-controller="AppCtrl">
    <input type="checkbox" ng-model="checked">
</div>

JS

var app = angular.module('app',[]);   

function AppCtrl($scope) {
    $scope.checked = true;

    setTimeout(function(){
        $scope.checked = false;
        alert('should be unchecked!');
    },2000);
}

https://jsfiddle.net/thomporter/tcVhN/

3 个答案:

答案 0 :(得分:4)

尝试使用有角度的 $timeout 服务而不是javascript的 setTimeout

如果您在angularjs中使用 setTimeout ,则需要使用$scope.$apply()来确保范围发生变化。检查此 fiddle

$timeout 会为您完成这项工作。

喜欢这个

$timeout(function(){
    $scope.checked = false;
    alert('should be unchecked!');
},2000);

<强> JSFIDDLE

答案 1 :(得分:0)

您需要将已检查的变量设置为所选属性。

<div ng-controller="AppCtrl">
    <input type="checkbox" selected="{{checked}}">
</div>

答案 2 :(得分:0)

这对我来说很好!

HTML文件

<input type="checkbox" [(ngModel)]="checked" [checked]="checked" (change)="onChange(checked? 'block':'none')">

.TS文件

export class TopBarComponent implements OnInit {

  checked: boolean;

  constructor(public dados: DadosService) { }


  ngOnInit() {
    if(this.dados.meusChamados == 'block')
    this.checked = true;
    else
    this.checked = false;
  }


  onChange(event : any){
    this.dados.meusChamados = event;
  }



}

checked =在.ts文件上创建的变量

onChange =在.ts文件上创建的函数,用于更改要显示的div的状态:none | block