Я следовал примеру, указанному на Ionic2 modals, и не получаю никаких ошибок, но когда я нажимаю на карту, которая должна инициировать модальный, ничего не происходит.Ионный 2 Модальный не показан
Вот код для самого модального:
@Component ({
template: `
<ion-card class='popover'>
<ion-card-content>
Hello
</ion-card-content>
</ion-card>
`
})
export class AccModal {
dumbData: number;
constructor() {
console.log("constructor");
this.dumbData= 22;
}
}
страница, где будет представлена моя модальный выглядит следующим образом:
<ion-card (click)='presentModal()' class='custom-card'>
<ion-card-header>
Sched. Accuracy
</ion-card-header>
<ion-card-content>
71%
</ion-card-content>
</ion-card>
С машинописи, как это:
presentModal() {
let myModal = Modal.create(AccModal, {param: "something"});
console.log('myModal is ', myModal);
this.nav.present(myModal);
console.log("function being called");
}
Регистрируется console.log
в presentModal
, но тот, который находится в конструкторе модальный НЕ. Я не понимаю, что делать, потому что я не уверен на 100%, что происходит?
UPDATE
Когда я отладки в nav.present (функция Nav Controller) вот что я вижу:
if (rootNav['_tabs']) {
// TODO: must have until this goes in
// https://github.com/angular/angular/issues/5481
void 0;
return;
}
Мой проект не имеет вкладки в нем так, что утверждение оценивается как истина и настоящая функция эффективно возвращает мне 0 и называет это хорошо. В моем пакете.json мои ионные версии: "ionic-angular": "^2.0.0-beta.8", "ionic-native": "^1.1.0"
Надеемся, эта дополнительная информация поможет диагностировать кого-то умнее меня.
UPDATE 2:
Я обновил до последнего ионного 2 выпуска в 2.0.0-beta.9. Однако, когда я отладки в хромированной консоли я все еще вижу код, указанный выше в моей функции nav.present в ионно-угловом кода, ХОТЯ, когда я смотрю на это в моем собственном коде я вижу это:
if (rootNav['_tabs']) {
// TODO: must have until this goes in
// https://github.com/angular/angular/issues/5481
console.error('A parent <ion-nav> is required for ActionSheet/Alert/Modal/Loading');
return;
}
Я очистил свой кеш и перезагрузил страницу, и все еще появляется старый код. Я, должно быть, схожу с ума. Любое понимание этого было бы потрясающе.
Update 3
Вот код для моих закладках. Live в app.html и индексная переменная - это всего лишь способ запустить приложение на правой вкладке. Она начинается как 1 (или закладка второго):
<ion-tabs greenTheme [selectedIndex]="index">
<ion-tab tabIcon="people" #content tabTitle="My Roster" [root]="tab2"></ion-tab>
<ion-tab tabIcon="stats" #content tabTitle="Wage Overview" [root]="tab1"></ion-tab>
</ion-tabs>
Является ли это вашим.nav вашим контроллером навигации? – Drakee510
Да. Извините, я упустил конструктор – discodane
'.present (myModal)' возвращает обещание. Попробуйте выполнить .present (myModal) .then ((res) => {debugger;}). Catch ((err) => {debugger;}) ', чтобы узнать, возвращается ли какая-либо полезная информация здесь –