Ionic navCtrl.setPages не работает в app.component.ts

Это не тестирование, это «поиск вручную на выходе» (известный в бизнесе как LMAO). Более формально это называется «поиск вручную ненормального выхода» (LMFAO). (См. Примечание ниже)

Каждый раз, когда вы меняете код, вы должны запустить приложение и LMFAO для всего кода, затронутого этими изменениями. Даже в небольших проектах это проблематично и подвержено ошибкам.

Теперь масштабируйте до 50k, 250k, 1m LOC или более и LMFAO при каждом изменении кода. Мало того, что это неприятно, это невозможно: вы расширили комбинацию входов, выходов, флагов, условий, и трудно реализовать все возможные ветви.

Хуже того, LMFAO может означать посещение страниц на страницах веб-приложение, запуск отчетов, просмотр миллионов журнальных строк на десятках файлов и машин, чтение сгенерированных и отправленных электронных писем, проверка текстовых сообщений, проверка пути робота, заполнение бутылки соды, агрегирование данных из сотни веб-сервисов , проверяя контрольный след финансовой сделки ... вы получаете идею. «Выход» не означает несколько строк текста, «вывод» означает совокупное поведение системы.

[/g3]

Наконец, тесты на единицу и поведение определить поведение системы . Тесты могут выполняться сервером непрерывной интеграции и проверяться на правильность. Конечно, возможно, System.out s, но сервер CI не узнает, является ли один из них неправильным, и если это так, они являются модульными тестами, и вы также можете использовать фреймворк.

Независимо от того, насколько мы хороши, мы считаем, что люди не являются хорошими модульными тестовыми платформами или серверами CI.


Примечание: Как указано (грубо) в комментариях, LMAO является , но в смысле очень ограниченным. Он не может быть воспроизведен каким-либо значимым образом по всему проекту или как часть процесса. Это похоже на постепенное развитие в REPL, но никогда не формализуя эти инкрементные тесты.

1
задан Scobee 17 January 2019 в 15:15
поделиться

2 ответа

Здесь приведена соответствующая документация :

Что если вы хотите управлять навигацией из вашего корневого компонента приложения ? Вы не можете ввести NavController , потому что любые компоненты, которые являются контроллерами навигации, являются дочерними для корневого компонента, поэтому они недоступны для инъекции.

Но вы можете использовать Nav

import { Nav } from 'ionic-angular';

//....

export class MyApp {

@ViewChild(Nav) nav: Nav;

//...

//And inside your function 

//..

this.nav.push('Page1');

//..
0
ответ дан Whatatimetobealive 17 January 2019 в 15:15
поделиться

В вашем корневом компоненте вы должны использовать Nav, а не NavController. Подробнее здесь: https://ionicframework.com/docs/api/navigation/NavController/#navigating-from-the-root-component

Вы не можете ввести NavController, потому что любые компоненты, которые являются контроллерами навигации, являются дочерними для корневого компонента, поэтому они недоступны для внедрения.

Также проверьте реализацию справочного приложения: https://github.com/ionic-team/ionic-conference-app/blob/v3/src/app/app.component.ts

0
ответ дан Sergey Rudenko 17 January 2019 в 15:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: