Я хочу выполнять код каждый раз, когда изменяется страница.
Я могу добавить метод ngOnDestroy
для каждой страницы. Похоже, что я мог использовать Ionic 2 page крючки жизненного цикла (например, ionViewDidUnload
) для того же самого эффекта, но я не потрудился test.Я предпочел бы добавить один метод в основной класс приложения.
Я вижу, что вы можете подписаться на Angular 2 События маршрутизатора. Как перевести это для использования в Ionic 2? Сначала я получаю сообщение об ошибке import { Router } from '@angular/router;
:
TypeScript error: <path>/node_modules/@angular/router/src/common_router_providers.d.ts(9,55): Error TS2305: Module '"<path>/node_modules/@angular/core/index"' has no exported member 'NgModuleFactoryLoader'.
TypeScript error: <path>/node_modules/@angular/router/src/router.d.ts(14,39): Error TS2305: Module '"<path>/node_modules/@angular/core/index"' has no exported member 'NgModuleFactoryLoader'.
TypeScript error: <path>/node_modules/@angular/router/src/router_module.d.ts(9,10): Error TS2305: Module '"<path>/node_modules/@angular/core/index"' has no exported member 'ModuleWithProviders'.
Конфигурация webpack
var path = require('path');
module.exports = {
entry: [
path.normalize('es6-shim/es6-shim.min'),
'reflect-metadata',
path.normalize('zone.js/dist/zone'),
path.resolve('app/app.ts')
],
output: {
path: path.resolve('www/build/js'),
filename: 'app.bundle.js',
pathinfo: false // show module paths in the bundle, handy for debugging
},
module: {
loaders: [
{
test: /\.ts$/,
loader: 'awesome-typescript',
query: {
doTypeCheck: true,
resolveGlobs: false,
externals: ['typings/browser.d.ts']
},
include: path.resolve('app'),
exclude: /node_modules/
}
],
noParse: [
/es6-shim/,
/reflect-metadata/,
/zone\.js(\/|\\)dist(\/|\\)zone/
]
},
resolve: {
alias: {
'angular2': path.resolve('node_modules/angular2')
},
extensions: ["", ".js", ".ts"]
}
};
Это имело бы смысл для меня в любом случае, если есть способ использовать службу Nav
или NavController
от ionic- angular. Есть ли способ сделать это?