Ionic 2 Modal不解雇

时间:2017-07-30 21:14:52

标签: javascript html angular typescript ionic2

我试图在离子2中解雇我的模态。

我的组件看起来像这样:

const center = map.getView().getCenter();
const pinnedLocation = ol.proj.transform(center, 'EPSG:3857', 'EPSG:4326');
const feature = new ol.Feature(new ol.geom.Point(center));
const pinLayer = new ol.layer.Vector ({
  source: new ol.source.Vector ({
    features: [feature]
  }),
  style: new ol.style.Style ({
    image: new ol.style.Icon({
      src: 'http://openlayers.org/en/v3.8.2/examples/data/icon.png'
    })
  })
});
map.addLayer (pinLayer);

我的html看起来像这样:

export class DynamicModalComponent<T extends IHasId> {

    modalOptions: DynamicModalOptions<T>

    constructor(public navCtrl: NavController, public navParams: NavParams) {
        this.modalOptions = navParams.get('modalOptions');
    }

    close() {
        this.modalOptions.viewCtrl.dismiss();
    }
}

当我点击取消按钮时,我的功能被触发但没有任何消失。我不认为这个问题会出现在通话类中,但只是发布相关内容:

<ion-header>
  <ion-navbar align-title="center">
    <ion-title> Dynamic Modal Header </ion-title>
    <ion-buttons end>
      <button (click)="close()" ion-button>
        <ion-icon name="save"></ion-icon>
        &nbsp;Cancel
      </button>
    </ion-buttons>
  </ion-navbar>
</ion-header>

1 个答案:

答案 0 :(得分:1)

如@sebaferras所述,ViewController的错误实例正在这里传递。

您可以通过在min(score_arr)的构造函数中注入max来请求注入器获取正确的ViewController实例。这种方式Injector可以在DynamicModalComponent中解决。

ViewController

更好技术是在ngOnInit的构造函数中注入constructor(public navCtrl: NavController, public navParams: NavParams, private injector: Injector) { this.modalOptions = navParams.get('modalOptions'); } ngOnInit() { this.viewCtrl = this.injector.get(ViewController); } close() { this.viewCtrl.dismiss(); } 并让Angular为您处理事情。

ViewController