Javascript 如果模型的计算结果为true,则选中angularjs复选框

Javascript 如果模型的计算结果为true,则选中angularjs复选框,javascript,angularjs,checkbox,Javascript,Angularjs,Checkbox,如何以角度形式定义一个复选框,当模型的计算结果为真(如“是”、“1”、“1…”)时选中该复选框,当模型的计算结果为假(0”、“0、未定义…”)时不选中该复选框?我从rest服务中获得数据,真实和错误的表示可能会有所不同。 如果用户更改表单中的值,则应将其设置为“1”(打开)或“0”(关闭)。如果他再次更改,则应将其设置为原始值并标记为未更改。 我想编写如下标记: <input type="checkbox" ng-model="value1" my-custom-directive>

如何以角度形式定义一个复选框,当模型的计算结果为真(如“是”、“1”、“1…”)时选中该复选框,当模型的计算结果为假(0”、“0、未定义…”)时不选中该复选框?我从rest服务中获得数据,真实和错误的表示可能会有所不同。 如果用户更改表单中的值,则应将其设置为“1”(打开)或“0”(关闭)。如果他再次更改,则应将其设置为原始值并标记为未更改。 我想编写如下标记:

<input type="checkbox" ng-model="value1" my-custom-directive>
<input type="checkbox" ng-model="value2" my-custom-directive>

请在选中的ng中的控制器中添加以下功能

$scope.validateColName = function (colname) {


         var url = $scope.url;         

         $http.get(url)
             .success(function (data) {
                 if(data){
                     $scope.checkvaluecol= 'true';

                 }else{
                     $scope.checkvaluecol= 'false';
                 }
                 })
             .error(function(data, status, headers) {
                 $scope.handleErrorInDialogs(status);
             });
    };   
这是你的输入标签,是od类型复选框

 ng-checked="checkIndicator(checkbox1)"

好的,我就在星期四结束这个案子

所有这些都是通过一个简单的过滤器来完成的,该过滤器会计算您定义的truffy值;-)

之后,只需调用模板上的过滤器

<input type="checkbox" ng-checked="b | isTruffy" />

似乎没有简单的方法使用指令来实现这一点,因此我在http请求后更改了我的模型:

value = value ? true : false;
形式很简单:

<input type="checkbox" ng-model="value">

您必须将rest服务(“1”、“on”等)的结果解释为
ng模型变量的
true
/
false
值。将
$watch
放在
$scope.server_value1
上,当前者更改时,相应地更新
$scope.value1
。是的,这是另一种方法,将值从rest服务转换为布尔值,然后再转换回来。所以我现在就做。我感到惊讶的是,没有简单的方法可以通过指令实现这一点。ng模型绑定在哪里?您列出的truffy值要多得多,例如,每个数字!=对于JSFIDLE,我在模板中使用了
nginit
,而不是从控制器初始化,但这是一样的。如果您知道truffies或falsie值的完整列表,您可以添加到过滤器。对于javascript中的默认“布尔计算器”,再次检查JSFIDLE,有一个输入错误。嗯,看看我的FIDLE:。如果更改文本输入中的值,则一切正常(0字符串除外),这可以通过过滤器解决。但当我单击复选框时,该值未设置为1或0。您有解决方案吗?
<input type="checkbox" ng-model="value">
if (value && ! oldvalue || ! value && oldvalue) {
  value = value ? 1 : 0;
  // send http request
} else {
  // nothing to do
}