如何在模型评估为true时检查角度形式的复选框(类似于"是"," 1",1,...)和模型评估为false时未选中(" 0",0,未定义,...)?我从休息服务中获取数据,而真假的重新定义可能会有所不同。 如果用户更改了表单中的值,则应将其设置为" 1" (上)或" 0" (关闭)。如果他再次更改它,应将其设置为原始值并标记为未更改。 我想写下标记:
<input type="checkbox" ng-model="value1" my-custom-directive>
<input type="checkbox" ng-model="value2" my-custom-directive>
答案 0 :(得分:2)
好的,我刚刚在jsfiddle
上完成了这个案子所有的东西都是通过一个简单的过滤器来完成的,它可以评估你定义的truffy值; - )
angular.module('App', [])
.filter('isTruffy', function () {
return function (input) {
// Add here, how much truffy values as you want, this is not case sensitive...
var truffies = [1, '1', true, 'true', 'yes', 'y'];
if (typeof input == 'String')
input = input.toLowerCase();
return truffies.indexOf(input) > -1;
};
});
之后,只需在模板上调用过滤器
<input type="checkbox" ng-checked="b | isTruffy" />
答案 1 :(得分:0)
似乎没有简单的方法可以使用指令执行此操作,因此我在http请求后更改了我的模型:
value = value ? true : false;
表格很简单:
<input type="checkbox" ng-model="value">
当用户提交表单时,会有一些转换,如:
if (value && ! oldvalue || ! value && oldvalue) {
value = value ? 1 : 0;
// send http request
} else {
// nothing to do
}
答案 2 :(得分:-1)
请在控制器的 ng-checked 中添加以下功能。
$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)"