Миграция с AngularJS на Angular - сложный процесс, который требует тщательного планирования. Angular предоставляет официальный инструмент ngUpgrade
, позволяющий делать это постепенно. Вот пошаговый подход:
npm install @angular/upgrade @angular/core @angular/common @angular/compiler @angular/platform-browser --save
Основные шаги для запуска AngularJS и Angular вместе:
import { UpgradeModule } from '@angular/upgrade/static';
@NgModule({
imports: [BrowserModule, UpgradeModule]
})
export class AppModule {
constructor(private upgrade: UpgradeModule) { }
ngDoBootstrap() {
this.upgrade.bootstrap(document.body, ['angularJsApp'], { strictDi: true });
}
}
export function myServiceFactory(injector: Injector) {
return injector.get(MyService);
}
angular.module('myApp')
.factory('myService', downgradeInjectable(MyService));
angular.module('myApp')
.directive('myComponent', downgradeComponent({ component: MyComponent }));
Используйте ngUpgrade
для параллельной работы двух роутеров:
const hybridRouter = new UpgradeModule(this.injector);
this.ngZone.run(() => {
hybridRouter.bootstrap(
document.body,
['angularJsApp'],
{ strictDi: true }
);
});
ngUpgrade
и AngularJSИзменения в биндингах:
ng-model
→ [(ngModel)]
ng-click
→ (click)
ng-repeat
→ *ngFor
DI система: Angular использует иерархические инжекторы
Изменение жизненного цикла: Нет $scope.$watch
, используйте OnChanges
Миграция требует поэтапного подхода с использованием ngUpgrade
. Начните с сервисов, затем компоненты, и наконец маршрутизацию. Тестируйте каждый шаг и используйте инструменты для автоматизации.