如果模型计算结果为true,则检查angularjs复选框

时间:2014-06-17 14:55:48

标签: javascript angularjs checkbox

如何在模型评估为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>

3 个答案:

答案 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)"