我试图取消选中使用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);
}
答案 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