как написать шаблон строки при закреплении exsits - PullRequest
0 голосов
/ 16 января 2019

когда я устанавливаю пиннинг и rowTemplate вместе, rowTemplate повторяется 3 раза в одной строке

Я думаю, что на него влияет пиннинг, но я не знаю, как это исправить

вот плункер: http://plnkr.co/edit/XoXMbmqa1IjegT1RQ297?p=preview

var app = angular.module('app', ['ngTouch', 'ui.grid', 'ui.grid.pinning']);

app.controller('MainCtrl', ['$scope', '$http', '$log', function ($scope, $http, $log) {
  $scope.gridOptions = {};

  $scope.gridOptions.columnDefs = [
    { name:'id', width:50, enablePinning:true, hidePinLeft: false, hidePinRight: true },
    { name:'name', width:100, pinnedLeft:true },
    { name:'age', width:100, pinnedRight:true  },
    { name:'address.street', width:150  },
    { name:'address.city', width:150 },
    { name:'address.state', width:50 },
    { name:'address.zip', width:50 }
  ];
  $scope.gridOptions.rowTemplate='<div>helloworld</div>'
  $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json')
    .then(function(response) {
      $scope.gridOptions.data = response.data;
    });
}]);
.grid {
  width: 100%;
  height: 400px;
}
<!doctype html>
<html ng-app="app">
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.7.0/angular.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.7.0/angular-touch.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.7.0/angular-animate.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.7.0/angular-aria.js"></script>
    <script src="http://ui-grid.info/docs/grunt-scripts/csv.js"></script>
    <script src="http://ui-grid.info/docs/grunt-scripts/pdfmake.js"></script>
    <script src="http://ui-grid.info/docs/grunt-scripts/vfs_fonts.js"></script>
    <script src="http://ui-grid.info/docs/grunt-scripts/lodash.min.js"></script>
    <script src="http://ui-grid.info/docs/grunt-scripts/jszip.min.js"></script>
    <script src="http://ui-grid.info/docs/grunt-scripts/excel-builder.dist.js"></script>
    <script src="http://ui-grid.info/release/ui-grid.js"></script>
    <link rel="stylesheet" href="http://ui-grid.info/release/ui-grid.css" type="text/css">
    <link rel="stylesheet" href="main.css" type="text/css">
  </head>
  <body>

<div ng-controller="MainCtrl">
  <div ui-grid="gridOptions" class="grid" ui-grid-pinning></div>
</div>


    <script src="app.js"></script>
  </body>
</html>

Я пытаюсь создать таблицу с несколькими заголовками для отображения информации о дате, и каждая строка имеет имя в качестве первого столбца, второй столбец представляет собой линейную диаграмму, которая может отображать бизнес-данные.

Я рисую картинку, чтобы показать это

1 Ответ

0 голосов
/ 21 января 2019

Предполагая, что вы можете обойтись без закрепления, я бы удалил расширение закрепления из вашей сетки. Это облегчает работу с шаблонами заголовков ... В противном случае вы столкнулись бы с той же проблемой с вашим заголовком (три повторяющихся заголовка).

См. Этот поршень: http://plnkr.co/edit/nvuUKIQczdY2E6KuMEVG?p=preview

Я удалил закрепление, удалил rowTemplate, использовал один headerCellTemplate (заполнитель) для размещения заголовка вашего календаря и использовал cellTemplate для размещения логики вашего графика.

Html:

<div ng-controller="MainCtrl">
  <div ui-grid="gridOptions" class="grid"></div>
</div>

Javascript:

var app = angular.module('app', ['ngTouch', 'ui.grid']);

app.controller('MainCtrl', ['$scope', '$http', '$log', function ($scope, $http, $log) {
  $scope.gridOptions = {};

  $scope.gridOptions.columnDefs = [
    { field:'id', name:'id', width:'25'},
    { field:'name', name:'name', width:'*' },
    { name:'chart', headerCellTemplate:'<div>Include header code here', width:'*', cellTemplate: '<div>include graph code here</div>'  }
  ];
  $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json')
    .then(function(response) {
      $scope.gridOptions.data = response.data;
    });
}]);

Надеюсь, я правильно истолковал вашу цель и надеюсь, что это поможет:)

...