typescript - Angular 1'deki gibi DOM öğesi üzerinde Angular 2'yi başlatma


Angular 1'de olduğu gibi bir DOM elemanı üzerine Angular 2'yi bootstrap etmek mümkün mü? Angular 1'de bu, örneğin <head> içindeki title etiketini değiştirmeyi mümkün kılıyordu. Angular 2'de ise my-appi <html> etiketine eklemeniz gerekiyor gibi görünüyor. Angular 1 ve Angular 2'nin her ikisinin de bootstrap edildiği bir plunker oluşturdum.

Angular 1

index.html

<body>
  <div ng-controller="MainCtrl">
    <h2>Hello {{name}}</h2>
  </div>
</body>

app.js

angular.element(document).ready(function() {
  angular.bootstrap(document.documentElement, ['plunker']);
});

Angular 2

index.html

<body>
  <my-app>Loading...</my-app>
</body>

main.ts

import {bootstrap} from 'angular2/platform/browser';
import {App} from './app';

bootstrap(App, [])
  .catch(err => console.error(err));

Cevap #1

Başlığı değiştirmek için Başlık servisi vardır. Bunu enjekte edebilir ve başlığı değiştirmek için kullanabilirsiniz.

Başlıktan daha fazlasını değiştirmek için doğrudan destek planlanıyor.

Angular'da <html>'e my-app eklemek iyi çalışmaz çünkü bu, kök bileşeninizin seçici ile eşleşen etiketin içindeki HTML'yi siler.