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