我有一个使用ng-switchery的复选框,如下所示:
<input type="checkbox" class="pull-right js-switch" ui-switch="{color:'#1AB394'}" ng-model="activeSwitch"/>
在我处理此操作的控制器中,我使用$ http:
获取一些数据$http.get('/clients/' + $stateParams.id)
.success(function (client) {
$scope.client = client;
$scope.activeSwitch = $scope.client.active;
});
我希望回调能够成功设置我的复选框的状态,但它并没有。我试过调用$scope.$apply()
,但这并没有真正改变任何内容,也没有在复选框上添加ng-checked
指令。
答案 0 :(得分:1)
我只能说这就是所有代码。没有更多。所以这就是解决方案:
显然这不是一个Angular问题,而是ng-switchery并不想在activeSwitch更改时正确地重新加载,因此通过添加ng-if,它将被强制仅仅打开activeSwitch存在时的DOM,如http执行其回调时的
<input ng-if="activeSwitch!==undefined" type="checkbox" class="pull-right js-switch" ui-switch="{color:'#1AB394'}" ng-model="activeSwitch"/>
此解决方案有效。感谢您的所有&#34;建设性的&#34;答案