Angularjs в angularjs - PullRequest
       2

Angularjs в angularjs

0 голосов
/ 16 ноября 2018

У меня есть приложение, которое я постепенно портирую на angular 4.

Прямо сейчас у меня есть компонент, который находится в Angular 4, другой в AngularJS.Я сталкиваюсь с проблемой при переходе от angularjs -> angular4 -> angularjs.первый переход с JS на 4 работает отлично, но потом я застрял с моим Angular 4 компонентом на главном экране.URL-адрес изменился, но страница не перенаправлена ​​на компонент Angular JS, мой нг-выход больше не обновляется.

Маршрутизатор находится в angularJS.

Компонент Angular 4dowgraded используя:

import {
    Injectable,
    ModuleWithProviders,
    NgModule
} from '@angular/core';

import {
    APP_MODULE_NAME
} from '../../constants';

declare const angular: angular.IAngularStatic;
import {
    downgradeInjectable,
    downgradeComponent
} from '@angular/upgrade/static';


// Singleton Module
@NgModule()
@Injectable()
export class ComponentHelper {
    constructor() {}

    static forRoot(): ModuleWithProviders {
        return {
            ngModule: ComponentHelper
        }
    }

    public static DowngradeFactory(componentName: string, className: any): void {
        angular.module(APP_MODULE_NAME).factory(componentName, downgradeInjectable(className));
    }

    public static DowngradeDirective(componentName: string, className: any): void {
        angular.module(APP_MODULE_NAME).directive(componentName, downgradeComponent({
            component: className
        }))
    }
}

Я делаю это в маршрутизаторе

{
    path: '/pj/:project_id/ds/:datastore_id/list/ng4/all',
    component: 'downgradeNG4',
    name: 'DowngradeNG4'
}, {
    path: '/pj/:project_id/ds/:datastore_id/search/:search_id/list/all',
    name: 'NormalJS',
    component: 'normalJS'
},

в какой-то момент в AngularJS Я делаю это так, чтобы я перенаправил на компонент NG4.

const path = `pj/${self.projectID}/ds/${self.currentDatastoreID}/list/ng4/all`;
$location.path(path);

Теперь, когда я в компоненте angular 4, я нажимаю на МЕНЮ UI, которое находится в angular JS, оно не перенаправляет событие, если изменение пути в браузере меняется.

Не все Компонент / Модульпонизиться, я должен понизить версию каждого сервиса и подкомпонента?Или только (как сейчас) компонент, вызываемый напрямую из AngularJS router?

Должен ли я понижать их рейтинг?

1 Ответ

0 голосов
/ 23 ноября 2018

Я был в этом процессе раньше (иммигрировал из angluarjs в angular).Я настоятельно рекомендую вам просто переписать все ваши компоненты в angular 6 снова (есть также некоторые базовые изменения от angular 4 до 6). Это займет меньше времени, чем этот метод.Вы можете сохранить свои HTML и CSS с минимальными изменениями.

в любом случае, если вы все еще настаиваете на своем пути.просто разделите его на отдельные части, которые могут работать сами по себе.* Вы можете запускать angularjs и angular одновременно на одной странице

, и если вам нужно передать данные из angularjs в angular, я бы сделал это по-другому, например, с помощью localalstorage.

в любом случае этоочень трудно понять вашими объяснениями, где проблема, даже с ошибками в консоли, угловая отладка требует времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...