Как передать массив другому компоненту? - PullRequest
0 голосов
/ 14 июля 2020

У меня есть массив FidId строки, мне нужно передать этот массив для использования в другом компоненте

 public AddSelection(layer: VectorLayer, map:Map){
    this.vectorSource = layer;
      //start select
      var FidId:string[] = [];
      var FeatureFind = false;
      var select = new Select();

      map.addInteraction(select);
      var selectedFeature = select.getFeatures();

      this.dragBox = new DragBox({
        condition:(condition as any).platformModifierKeyOnly
      });
      map.addInteraction(this.dragBox);

      this.dragBox.on('boxend', () => {
        var extent = this.dragBox.getGeometry().getExtent();
        this.vectorSource.forEachFeatureIntersectingExtent(extent, function(feature) {
          FeatureFind = true;
          selectedFeature.push(feature);
          FidId.push(feature.get('id'));
        });

        if(FeatureFind)
        this.dialog.open(DialogData2Component);
        
      });
      this.dragBox.on('boxstart',()=>{
        selectedFeature.clear();
        FeatureFind = false;
        FidId = [];
      });
      //end select

  }

Вот где он мне нужен

Подробности

Я новичок в angular, пожалуйста, помогите :)

1 Ответ

0 голосов
/ 14 июля 2020

способ, которым я обрабатывал передачу любых аргументов от моего дочернего элемента к родительскому (похоже, это то, что вам здесь нужно)

сначала в моем дочернем компоненте я определяю свой eventEmitter и инициализирую свой массив, который я хочу передать мой родительский

//child component.ts
array: any[] = [];
@Output() passArray = new Eventemitter

, затем я пишу функцию, которая вызывает мой eventemitter и испускает мой массив следующим образом

// child component.ts
emitArray() {
  this.passArray.emit(array);
}

Теперь я go в HTML моего родительского компонента, где мой дочерний компонент расположен здесь, я могу прослушать eventEmitter, поместив его в скобки, например,

// parent component.html
<custom-component (passArray)="yourFunction($event)"><custom-component>

// parent component.ts
yourFunction(parameter) {
  do.something()
}

, поэтому, как только passArray.emit вызывается нашим родительским компонентом, который его слушает в html, выполняется "yourFunction" с параметрами, которые он получает от события $. событие $ - это наши данные, которые мы передали в наш дочерний компонент. для получения более подробной информации о том, как передавать данные в angular, вы можете прочитать документацию на https://angular.io/docs. они хорошо объясняют многие темы :) (лучше, чем я: D)

это один из моих первых ответов, так что извините, если он немного запутан :) Надеюсь, я смог помочь;)

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