私は、構成可能な管理コンソールのコア技術としてAngular 2を評価しています。その主な要件は、拡張可能でカスタマイズ可能です。外部の開発者が独自のコンポーネントを開発し、それを私の "読み取り専用"フレームワークの中に何らかの方法で注入することは可能であるべきです。読み取り専用とは、開発者がフレームワークのソースコードにアクセス(または編集)できないことを意味します。代わりに、 "マスター"アプリの構造を知らずに、サーブレット(または他のもの)を通して静的に提供することなく、コンポーネントのリソース(.html、.ts/.jsファイル)の開発に集中することができます。これは少なくとも理論的に可能ですか?タイプスクリプトベースのコンポーネントを宣言して理解している(あらかじめ定義された場所から)動的にインポートする "メイン"アプリケーションモジュールを使用できますか?Angular 2(Typescript) - コンポーネントのリモート開発と動的注入
3
A
答えて
0
うん - ここを参照してください:https://plnkr.co/edit/fdP9Oc?p=info
をPlunkrホームページを見ながら、私はランダムに、この例に出くわし。
コンポーネントをオブジェクトパラメータとしてコンパイルする関数に渡すことができます。
import {Compiler, Component, NgModule, OnInit, ViewChild,
ViewContainerRef} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
@Component({
selector: 'my-app',
template: `<h1>Dynamic template:</h1>
<div #container></div>`
})
export class App implements OnInit {
@ViewChild('container', { read: ViewContainerRef }) container: ViewContainerRef;
constructor(private compiler: Compiler) {}
ngOnInit() {
this.addComponent(
`<h4 (click)="increaseCounter()">
Click to increase: {{counter}}
</h4>`,
{
counter: 1,
increaseCounter: function() {
this.counter++;
}
}
);
}
private addComponent(template: string, properties?: any = {}) {
@Component({template})
class TemplateComponent {}
@NgModule({declarations: [TemplateComponent]})
class TemplateModule {}
const mod = this.compiler.compileModuleAndAllComponentsSync(TemplateModule);
const factory = mod.componentFactories.find((comp) =>
comp.componentType === TemplateComponent
);
const component = this.container.createComponent(factory);
Object.assign(component.instance, properties);
// If properties are changed at a later stage, the change detection
// may need to be triggered manually:
// component.changeDetectorRef.detectChanges();
}
}
@NgModule({
imports: [ BrowserModule ],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
関連する問題
- 1. パイプ。コンポーネントへのコンポーネントの注入Angular 2
- 2. TypeScript/Angular 2動的オブジェクトデシリアライザの作成
- 3. TypeScript、Angular 2依存性注入(継承あり)
- 4. チェックボックスのデータバインディングAngular 2とTypeScript
- 5. すべてのコンポーネントにコンポーネントを自動注入 - 角度2
- 6. angular 2 typescript class library analog
- 7. typescript注釈の動的拡張クラス
- 8. TypeScript Angular 2 Responses Subscription
- 9. typescript依存性注入フレームワーク
- 10. Angular TypeScriptコンポーネントのLESS/Sass変数
- 11. jsonのAngular 2(TypeScript)データモーダルジェネレータ
- 12. localhost接頭辞Angular 2の開発
- 13. 非同期入力の子コンポーネントを持つAngular 2コンポーネントのテスト
- 14. Ionic 2/Angular 2コンポーネントのライフサイクルフック
- 15. AngularダーツのAngularコンポーネントを動的に作成する
- 16. Angular 1.5コンポーネント/ $ logの依存性注入が必要
- 17. Angular-Fullstackで生成されたAngular 1.5コンポーネントへの依存性注入方法
- 18. Angular2 - 循環参照の動的コンポーネントに注入すると依存関係注入が機能しない
- 19. mixinをコンポーネントに動的に注入する方法
- 20. モジュールのAngularJS動的注入
- 21. Angular 1.5コンポーネントでサービスを注入する例
- 22. @Input()に基づく角度2の動的依存性注入
- 23. Angular 2、Ionic 2のコンポーネントでテンプレートを動的に更新する方法
- 24. サービスでサービスを注入する際に依存関係のパラメータを渡す方法(Ionic 2/Angular 2/Typescript)
- 25. flow.jsをAngular 2 Typescript(Cont)
- 26. JSON to object(typescript、angular 2)
- 27. Javascript、Typescript、Angular 5 - ファイルを開く/開く
- 28. 角2動的コンポーネントのクリックイベント
- 29. モデルクラス注入のベストプラクティス(Angular)
- 30. Angular2動的コンポーネント