Я много искал эту проблему, но не нашел решения, которое на самом деле работает для удовлетворения моих потребностей. Проблема: я хотел выбрать объект строки при нажатии флажка, имеющего columnDef как [{name: 'field01', displayName: '', field: 'field01', cellTemplate: "<input type='checkbox' ng-model='row.entity.field01' ng-click='grid.appScope.myhello()' />"}
].
Я создаю этот columnDef динамически на основе другого JSON [Обновление рабочего кода]
$scope.columnDef = function(){
var column = [{name: 'field01', displayName: '', field: 'field01', cellTemplate: "<input type='checkbox' ng-model='row.entity.field01' ng-click='grid.appScope.myhello(\"row.entity.field01\")' />"}], coltype = [];
angular.forEach($scope.columns, function(value, index){
coltype = [];
switch(value.type){
case "Number": coltype.push({type: "number"});
break;
case "String": break;
case "Boolean": coltype.push({editableCellTemplate: "ui-grid/dropdownEditor", cellFilter: "mapBool", editDropdownValueLabel: "bool", editDropdownOptionsArray: [{ id: 1, bool: 'Yes' },{ id: 2, bool: 'No' }] });
break;
case "Date": coltype.push({type: 'date', cellFilter: 'date:"MM/dd/yyyy"'});
break;
}
column.push(angular.extend({name: value.name, displayName: value.name, enableCellEdit: (value.edit.indexOf("No") != -1) ? false : true}, coltype[0]));
});
return column;
};
$scope.gridOptions.data = $scope.datagrid;
$scope.gridOptions.columnDefs = $scope.columnDef();
$scope.myhello = function(value){
console.log("It works!!! :-) " + value);
};
Приведенный выше код обновляет JSON таблицы данных поля field01, но не вызывает функцию ng-click. Я сослался на два Plunkr, один с внешней областью действия в ui-grid Plunkr, а другой с определением метод в gridoptions и вызовите его локально Plunkr (в этом плункере ng-click получает вызвано, но когда я попытался проверить значение внутри функции editUser, оно не работало должным образом).
ng-bind-html
, как в первом Plunkr? - person brettvd   schedule 12.04.2015