Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ng网格:如何显示真/假值的复选框_Javascript_Html_Angularjs_Ng Grid - Fatal编程技术网

Javascript ng网格:如何显示真/假值的复选框

Javascript ng网格:如何显示真/假值的复选框,javascript,html,angularjs,ng-grid,Javascript,Html,Angularjs,Ng Grid,在angularjs脚本中,我有“ng grid”模块,在一列中,我希望显示复选框控件,而不是json数据返回的真/假字符串。 如果json变量为true,则必须选中该复选框;如果为false,则必须取消选中该复选框 我想我必须使用模板,但我不知道如何使用 如何显示复选框?有一些例子吗 谢谢在定义字段的网格定义时,您需要定义一个cellTemplate。例如,请参见文档中的“”部分 {field:'age', displayName:'Age', cellTemplate: '<div

在angularjs脚本中,我有“ng grid”模块,在一列中,我希望显示复选框控件,而不是json数据返回的真/假字符串。 如果json变量为true,则必须选中该复选框;如果为false,则必须取消选中该复选框

我想我必须使用模板,但我不知道如何使用

如何显示复选框?有一些例子吗


谢谢

在定义字段的网格定义时,您需要定义一个cellTemplate。例如,请参见文档中的“”部分

 {field:'age', displayName:'Age', cellTemplate: '<div ng-class="{green: row.getProperty(col.field) > 30}"><div class="ngCellText">{{row.getProperty(col.field)}}</div></div>'}]
        };
{field:'age',displayName:'age',cellTemplate:{{{row.getProperty(col.field)}}]
};

它使用
div
,您可以像这样使用
input
用变更处理程序更新

    var app = angular.module('myApp', ['ngGrid']);
    app.controller('MyCtrl', function($scope) {
      $scope.myData = [{
        name: "Moroni",
        age: 50,
        dude: true
      }, {
        name: "Tiancum",
        age: 43,
        dude: true
      }, {
        name: "Jacob",
        age: 27,
        dude: false
      }, {
        name: "Nephi",
        age: 29,
        dude: true
      }, {
        name: "Enos",
        age: 34,
        dude: false
      }];
      $scope.gridOptions = {
        data: 'myData',
        columnDefs: [{
          field: 'name',
          displayName: 'Name'
        }, {
          field: 'age',
          displayName: 'Age'
        }, {
          field: 'dude',
          displayName: 'Dude',
          cellTemplate: '<input type="checkbox" ng-model="row.entity.dude" ng-click="toggle(row.entity.name,row.entity.dude)">'
        }]
      };

      $scope.toggle = function(name, value) {
        //do something usefull here, you have the name and the new value of dude. Write it to a db or else. 
        alert(name + ':' + value);
      }
    });
var-app=angular.module('myApp',['ngGrid']);
应用程序控制器('MyCtrl',函数($scope){
$scope.myData=[{
姓名:“莫罗尼”,
年龄:50,,
都德:是的
}, {
名称:“天香”,
年龄:43岁,
都德:是的
}, {
姓名:“雅各布”,
年龄:27岁,
都德:错
}, {
名称:“尼菲”,
年龄:29,,
都德:是的
}, {
名称:“Enos”,
年龄:34岁,
都德:错
}];
$scope.gridOptions={
数据:“myData”,
columnDefs:[{
字段:“名称”,
displayName:'名称'
}, {
字段:“年龄”,
显示名称:“年龄”
}, {
字段:“伙计”,
displayName:“Dude”,
单元格模板:“”
}]
};
$scope.toggle=函数(名称、值){
//在这里做一些有用的事情,你就有了dude的名字和新值。把它写到数据库或者其他地方。
警报(名称+':'+值);
}
});
现在,如果只想显示值,可以添加更改处理程序或将输入设置为disable/readonly


(我为雅各布和伊诺斯感到非常抱歉!)

它起作用了!谢谢现在我想要处理ngGridEventEndCellEdit事件,当我编辑复选框之外的字段时,我成功地处理了它。如何使复选框发出该事件?