angularjs компонент ui-grid внутри cellTemplate не обновляет данные - PullRequest
0 голосов
/ 29 мая 2020

Я новичок в angularjs и, как мне кажется, пытаюсь исправить ошибку, связанную с ошибкой ui-grid.

https://github.com/angular-ui/ui-grid/issues/1302

мой gridOptions выглядит как

$scope.gridOptions.columnDefs.push({
    name: 'not_important',
    cellClass: 'text-wrap',
    displayName: 'Not Important',
    enableSorting: false,
    cellTemplate: `<div style="padding: 10px;" ng-if="some_element.length !== 0">
                      <div ng-if="row.entity.some_attribute.length > 0">
                        <some-component prospect="row.entity" someType="some_type">
                        </some-component>
                      </div>
                    </div>

  });

, а some-component - это загруженный компонент и выглядит как

export default {
  bindings: {
    prospect: '=',
    someType: '='
  },
controller: class SomeComponent {
    constructor($scope, $filter, $state, $uibModal) {
      this.$uibModal = $uibModal;
      this.$scope = $scope;
      console.log('some info', this.$scope);
    } 
  template: `
  <div style='min-width:150px; margin-bottom:5px;'>
      <span class='label label-default'>A</span>
      <span class='linked' style='border-bottom:1px dotted black;font-size:85%;'>
        <span>{{$ctrl.someType}}</span>
      </span>
  </div>
`

Конечно, код изменен, чтобы не отображать важные рабочие данные .

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

Директива, отображаемая через UI-Grid cellTemplate, отображается неправильно

путем добавления

scope: {
    prospect: '='
  },
  link: function (scope, element, attrs) {
    console.log('link present?', scope, element, attrs);
    scope.$watch('prospect', function(newValue) {
      var prospect = newValue;
      console.log('link propsect', prospect);

    });
  },

, но все равно не т работать. Кажется, что компонент никогда не вызывается, когда у меня есть фильтр. Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...