如何将 Ionic 2 Modal 放在单独的文件中?
How can I put an Ionic 2 Modal in a separate file?
我正在使用 Ionic 2 并想为不同的页面使用模态框。
一个用例是消息的创建和编辑:我想在仪表板页面上显示一个 "new message" 按钮,在消息列表页面上显示另一个 "new message" 按钮,第三个按钮 "edit message" 在消息查看页面上。所有这些按钮都应该打开相同的 MessagesEditModal。
我当前的代码如下所示:
import { Component } from '@angular/core';
import { Modal, NavController, ViewController } from 'ionic-angular';
@Component({
templateUrl: 'build/pages/messages/messages-list-page.html'
})
export class MessagesListPage {
static get parameters() {
return [[NavController]];
}
constructor(navController, sessionsService) {
this.navController = navController;
}
showModal() {
let modal = Modal.create(MessagesEditModal, { some: "data" });
this.navController.present(modal);
}
}
@Component({
templateUrl: 'build/pages/messages/messages-edit-modal.html'
})
class MessagesEditModal {
static get parameters() {
return [ViewController];
}
constructor(viewCtrl) {
this.viewCtrl = viewCtrl;
}
close() {
this.viewCtrl.dismiss();
}
}
这对一个页面来说效果很好,但我想在其他页面中重复使用这个模式。我试图将 "MessagesEditModal" class 放入单独的文件中并为其添加导入,但这失败了。当我调用 showModal() 时会抛出此异常:
ORIGINAL EXCEPTION: TypeError: componentType is undefined
如何使用来自不同页面的模式?
我不想在这里使用页面,因为内容确实应该显示并且表现得像模态行为(平板电脑上的动画和非全屏)。
This works fine for one page, but I want to reuse this modal in other
pages. I've tried to put the "MessagesEditModal" class into a separate
file and added an import for it, but this fails.
当您这样做时,您是否也在 MessagesEditModal
class 定义中添加了 export
关键字?
@Component({
templateUrl: 'build/pages/messages/messages-edit-modal.html'
})
export class MessagesEditModal {
static get parameters() {
return [ViewController];
}
constructor(viewCtrl) {
this.viewCtrl = viewCtrl;
}
close() {
this.viewCtrl.dismiss();
}
}
我正在使用 Ionic 2 并想为不同的页面使用模态框。
一个用例是消息的创建和编辑:我想在仪表板页面上显示一个 "new message" 按钮,在消息列表页面上显示另一个 "new message" 按钮,第三个按钮 "edit message" 在消息查看页面上。所有这些按钮都应该打开相同的 MessagesEditModal。
我当前的代码如下所示:
import { Component } from '@angular/core';
import { Modal, NavController, ViewController } from 'ionic-angular';
@Component({
templateUrl: 'build/pages/messages/messages-list-page.html'
})
export class MessagesListPage {
static get parameters() {
return [[NavController]];
}
constructor(navController, sessionsService) {
this.navController = navController;
}
showModal() {
let modal = Modal.create(MessagesEditModal, { some: "data" });
this.navController.present(modal);
}
}
@Component({
templateUrl: 'build/pages/messages/messages-edit-modal.html'
})
class MessagesEditModal {
static get parameters() {
return [ViewController];
}
constructor(viewCtrl) {
this.viewCtrl = viewCtrl;
}
close() {
this.viewCtrl.dismiss();
}
}
这对一个页面来说效果很好,但我想在其他页面中重复使用这个模式。我试图将 "MessagesEditModal" class 放入单独的文件中并为其添加导入,但这失败了。当我调用 showModal() 时会抛出此异常:
ORIGINAL EXCEPTION: TypeError: componentType is undefined
如何使用来自不同页面的模式?
我不想在这里使用页面,因为内容确实应该显示并且表现得像模态行为(平板电脑上的动画和非全屏)。
This works fine for one page, but I want to reuse this modal in other pages. I've tried to put the "MessagesEditModal" class into a separate file and added an import for it, but this fails.
当您这样做时,您是否也在 MessagesEditModal
class 定义中添加了 export
关键字?
@Component({
templateUrl: 'build/pages/messages/messages-edit-modal.html'
})
export class MessagesEditModal {
static get parameters() {
return [ViewController];
}
constructor(viewCtrl) {
this.viewCtrl = viewCtrl;
}
close() {
this.viewCtrl.dismiss();
}
}