Я новичок в 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);
});
},
, но все равно не т работать. Кажется, что компонент никогда не вызывается, когда у меня есть фильтр. Есть идеи?