ng-click не работает с флажком ui-grid cellTemplate

Я много искал эту проблему, но не нашел решения, которое на самом деле работает для удовлетворения моих потребностей. Проблема: я хотел выбрать объект строки при нажатии флажка, имеющего 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, оно не работало должным образом).


person Saurabh    schedule 12.04.2015    source источник
comment
Как выглядит HTML, который использует это? Вы используете ng-bind-html, как в первом Plunkr?   -  person brettvd    schedule 12.04.2015
comment
привет, brettvd, я ничего не обновляю на HTML-странице, даже если вы удалите тег скрипта ng-bind-html, код работает и обновляет JSON на странице. Меня беспокоит то, что при щелчке флажка должен запускаться ng-click, чтобы я мог захватить объект строки, по которому был сделан щелчок.   -  person Saurabh    schedule 12.04.2015
comment
Команда UI-Grid изменила переменную getExternalScope() на grid.appScope. ui-grid.info/docs/#/tutorial/305_appScope. После использования appScope мой код работает как часы.   -  person Saurabh    schedule 12.04.2015
comment
проверьте это: stackoverflow.com/questions/26621598/   -  person Aliti    schedule 03.06.2016


Ответы (1)