ng-switchery不会在$ http回调中更新

时间:2015-02-04 14:16:19

标签: angularjs http checkbox angularjs-directive callback

我有一个使用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指令。

1 个答案:

答案 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;答案