কৌণিক 2 এ ile সংকলনের সমান


134

আমি ম্যানুয়ালি নির্দেশাবলী সম্বলিত কিছু HTML সংকলন করতে চাই comp $compileকৌণিক 2 এর সমতুল্য কত ?

উদাহরণস্বরূপ, কৌণিক 1 এ, আমি গতিশীলভাবে এইচটিএমএলের একটি টুকরোটি সংকলন করতে এবং এটি ডিওএম-এ সংযোজন করতে পারি:

var e = angular.element('<div directive></div>');
element.append(e);
$compile(e)($scope);

8
বেশিরভাগ এই উত্তরগুলি (এখন 1 অবচয়হীন উত্তর ব্যতীত) কৌনিক 1 $ সংকলনের সমতুল্য নয়। ile সংকলন একটি এইচটিএমএল স্ট্রিং নেয় এবং সেখানে থাকা উপাদান এবং এক্সপ্রেশনকে সংকলন করে। এই উত্তরগুলি কেবল প্রাক-সংজ্ঞায়িত উপাদানগুলি তৈরি করে (যা এখনও তাত্ক্ষণিকভাবে নয়) গতিশীলভাবে এবং স্ট্রিং আর্গুমেন্ট গ্রহণ করতে পারে না। এটি একই জিনিস নয়। কেউ কি এই প্রশ্নের আসল উত্তর জানেন?
danday74


কৌণিক 4 ComponentFactoryResolver নিয়ে এসেছেন যা কৌণিক 1.0 .See মধ্যে $ কম্পাইল আমার উত্তর সমতূল্য stackoverflow.com/questions/34784778/...
কোড-ইজেড

1
@ ডান্ডায়ে 74৪ - আমি সম্মত হই যে এই উত্তরগুলির কোনওটিই স্বেচ্ছাসেবী এইচটিএমএল টেমপ্লেটগুলি সংকলন করার ক্ষমতা সরবরাহ করে না, পরিবর্তে তারা কেবল প্রাক-বিদ্যমান উপাদানগুলির একটি সেট থেকে নির্বাচন করে। আমি এখানে আসল উত্তরটি পেয়েছি, যা কমপক্ষে 8 টিতে কাজ করে: কমপক্ষে স্ট্যাকওভারফ্লো / প্রশ্ন / 61137899/… । একটি উত্তর দেখুন, যা একটি ওয়ার্কিং স্ট্যাকব্লিটজ সরবরাহ করে যা একটি স্বেচ্ছাসেবী চালানোর সময়-উত্পন্ন HTML টেমপ্লেট সংকলন করে।
এবেনহেন

উত্তর:


132

কৌণিক 2.3.0 (2016-12-07)

সমস্ত বিবরণ চেক পেতে:

এটি কার্যকরভাবে দেখতে:

অধ্যক্ষগণ:

1) টেমপ্লেট তৈরি করুন
2) উপাদান তৈরি করুন
3) মডিউল তৈরি করুন
4) মডিউল
তৈরি করুন 5) তৈরি করুন (এবং ক্যাশে) উপাদান তৈরি করুন
6) এর উদাহরণ তৈরির জন্য লক্ষ্য ব্যবহার করুন

একটি কম্পোনেন্ট কীভাবে তৈরি করা যায় তার একটি দ্রুত ওভারভিউ

createNewComponent (tmpl:string) {
  @Component({
      selector: 'dynamic-component',
      template: tmpl,
  })
  class CustomDynamicComponent  implements IHaveDynamicData {
      @Input()  public entity: any;
  };
  // a component for this particular template
  return CustomDynamicComponent;
}

এনজিএমডুলেলে কীভাবে উপাদান ইনজেক্ট করবেন way

createComponentModule (componentType: any) {
  @NgModule({
    imports: [
      PartsModule, // there are 'text-editor', 'string-editor'...
    ],
    declarations: [
      componentType
    ],
  })
  class RuntimeComponentModule
  {
  }
  // a module for just this Type
  return RuntimeComponentModule;
}

একটি কোড স্নিপেট কীভাবে তৈরি করবেন ComponentFactory (এবং এটি ক্যাশে করুন)

public createComponentFactory(template: string)
    : Promise<ComponentFactory<IHaveDynamicData>> {    
    let factory = this._cacheOfFactories[template];

    if (factory) {
        console.log("Module and Type are returned from cache")

        return new Promise((resolve) => {
            resolve(factory);
        });
    }

    // unknown template ... let's create a Type for it
    let type   = this.createNewComponent(template);
    let module = this.createComponentModule(type);

    return new Promise((resolve) => {
        this.compiler
            .compileModuleAndAllComponentsAsync(module)
            .then((moduleWithFactories) =>
            {
                factory = _.find(moduleWithFactories.componentFactories
                                , { componentType: type });

                this._cacheOfFactories[template] = factory;

                resolve(factory);
            });
    });
}

উপরের ফলাফলটি কীভাবে ব্যবহার করবেন সে সম্পর্কে একটি কোড স্নিপেট

  // here we get Factory (just compiled or from cache)
  this.typeBuilder
      .createComponentFactory(template)
      .then((factory: ComponentFactory<IHaveDynamicData>) =>
    {
        // Target will instantiate and inject component (we'll keep reference to it)
        this.componentRef = this
            .dynamicComponentTarget
            .createComponent(factory);

        // let's inject @Inputs to component instance
        let component = this.componentRef.instance;

        component.entity = this.entity;
        //...
    });

এখানে পড়ুন সমস্ত বিবরণ সহ সম্পূর্ণ বিবরণ , বা কাজের উদাহরণ পর্যবেক্ষণ করুন

OBSOLETE - কৌণিক 2.0 2.0 আরসি 5 সম্পর্কিত (কেবলমাত্র আরসি 5)

পূর্ববর্তী আরসি সংস্করণগুলির জন্য পূর্ববর্তী সমাধানগুলি দেখতে, দয়া করে এই পোস্টের ইতিহাসটি অনুসন্ধান করুন


2
অনেক ধন্যবাদ, আমি এখন একটি অবহেলিত ডায়নামিক কম্পিউটার উপাদান লোডার এর একটি কার্যকারী উদাহরণ খুঁজছিলাম ComponentFactoryএবং ViewContainerRefপ্রতিস্থাপন করেছি।
আন্দ্রে লোকার

1
index.html মধ্যে @maxou যে Lo-ড্যাশ রেফারেন্স ঠিক যে রেফারেন্স যোগ করতে পারেন এবং সব কাজ করবে
Radim Kohler

62
আসলেই কি এই কঠিন? আমি কেবল এই জাতীয় কিছু করতে সক্ষম হয়েছি: $compile($element.contents())($scope.$new());এবং এখন এটি এনজিএমডুলি তৈরির সাথে সম্পূর্ণ কয়েকশ লাইনের কোড This
কার্ভাপালো

2
JitCompilerআপনার উদাহরণ Compilerথেকে কাজ করতে পারে যদি ব্যবহার করে কি লাভ @angular/core? plnkr.co/edit/UxgkiT?p= পূর্বরূপ
yurzui

4
ওহে আমার codeশ্বর, একটি ছোট উপাদান সংকলন করার জন্য আমার কতগুলি কোডের লাইনের কোড লিখতে হবে। আমি ভাল করে বুঝতে পারি নি
Mr_Perfect

35

দ্রষ্টব্য: @ বেণীবোটমা যেমন একটি মন্তব্যে উল্লেখ করেছেন, ডায়নামিক কম্পোনেন্টলয়েডার এখন অবহেলিত, তাই এই উত্তরটিও তাই।


কৌণিক 2 এর কোনও ile সংকলন সমতুল্য নেই। DynamicComoponentLoaderআপনার কোডটি গতিশীলভাবে সংকলন করতে আপনি ES6 ক্লাসের সাহায্যে এবং হ্যাক করতে পারেন (এই বিভাজনটি দেখুন ):

import {Component, DynamicComponentLoader, ElementRef, OnInit} from 'angular2/core'

function compileToComponent(template, directives) {
  @Component({ 
    selector: 'fake', 
    template , directives
  })
  class FakeComponent {};
  return FakeComponent;
}

@Component({
  selector: 'hello',
  template: '<h1>Hello, Angular!</h1>'
})
class Hello {}

@Component({
  selector: 'my-app',
  template: '<div #container></div>',
})
export class App implements OnInit {
  constructor(
    private loader: DynamicComponentLoader, 
    private elementRef: ElementRef,
  ) {}

  ngOnInit() {} {
    const someDynamicHtml = `<hello></hello><h2>${Date.now()}</h2>`;

    this.loader.loadIntoLocation(
      compileToComponent(someDynamicHtml, [Hello])
      this.elementRef,
      'container'
    );
  }
}

তবে এটি কেবলমাত্র एचটিএমএল পার্সারটি কৌনিক 2 মূলের অভ্যন্তরে কাজ করবে।


অসাধারণ কৌশল! তবে আমার গতিশীল উপাদানটির কিছু ইনপুট থাকলে ডায়নামিক ডেটাও বাঁধাই সম্ভব?
ইউজিন গ্লহোহোটোরেনকো

2
আমার নিজের প্রশ্নের উত্তর: সংকলন ফাংশনে ডেটা দেওয়ার মাধ্যমে এটি সম্ভব। এখানে plunk plnkr.co/edit/dK6l7jiWt535jOw1Htct?p= পূর্বরূপ
ইউজিন গ্লাহোহোটোরেনকো

এই সমাধানটি কেবল বিটা -0 দিয়ে কাজ করছে। বিটা 1 থেকে 15 পর্যন্ত উদাহরণ কোডটি একটি ত্রুটি প্রদান করে। ত্রুটি: উপাদানটিতে কোনও উপাদান নির্দেশ নেই [অবজেক্ট অবজেক্ট]
নিকোলাস ফোর্নি

13
যেহেতু আরসি 1 ডায়নামিক কম্পোনেন্ট লোডার অবহেলিত হয়েছে
বেনি বোটমা

1
@ বেনিবোটমা যেহেতু অবনতিহীন DynamicComponentLoader, আমরা কৌনিক 2 তে একই ধরণের জিনিসটি কীভাবে করব? বলুন আমার একটি মোডাল সংলাপ আছে এবং আমি বিষয়বস্তু হিসাবে একটি নতুন উপাদানকে গতিশীলভাবে লোড করতে চাই
লূক টি ওব্রায়ান

16

কৌনিক সংস্করণ আমি ব্যবহার করেছি - কৌণিক 4.2.0

কৌণিক 4 হয় নিয়ে এসেছেন ComponentFactoryResolver রানটাইম এ লোড উপাদান রয়েছে। এটি এক ধরণের একই ধরণের বাস্তবায়ন Ang কৌনিক 1.0 তে সংকলন করে যা আপনার প্রয়োজনকে পরিবেশন করে

এই নীচের উদাহরণে আমি লোড করছি ড্যাশবোর্ডটিলে কম্পিউটারে ইমেজ উইজেট উপাদানটি গতিশীলভাবে

কোনও উপাদান লোড করতে আপনার একটি নির্দেশিকা দরকার যা আপনি এনজি-টেম্পলেটটিতে প্রয়োগ করতে পারেন যা গতিশীল উপাদানটি রাখতে সহায়তা করবে

WidgetHostDirective

 import { Directive, ViewContainerRef } from '@angular/core';

    @Directive({
      selector: '[widget-host]',
    })
    export class DashboardTileWidgetHostDirective {
      constructor(public viewContainerRef: ViewContainerRef) { 


      }
    }

এই নির্দেশটি ইনজেকশন দেয় উপাদানটির দৃশ্যের ধারকটিতে অ্যাক্সেস পেতে ভিউকন্টেইনরফকে দেয় যা গতিশীলভাবে যুক্ত উপাদানটিকে হোস্ট করবে।

ড্যাশবোর্ডটাইল কম্পোনেন্ট (গতিশীল উপাদান রেন্ডার করার জন্য স্থানধারক উপাদান)

এই উপাদানটি কোনও ইনপুট গ্রহণ করে যা পিতামাত্ত্বিক উপাদানগুলি থেকে আসে বা আপনি আপনার প্রয়োগের ভিত্তিতে আপনার পরিষেবা থেকে লোড করতে পারেন। এই উপাদানগুলি রানটাইমে উপাদানগুলি সমাধান করতে প্রধান ভূমিকা পালন করছে। এই পদ্ধতি আপনি কি আপনার নামে একটি পদ্ধতি দেখতে পারেন ) renderComponent ( যা পরিণামে সঙ্গে একটি পরিষেবা এবং সমাধান থেকে উপাদান নাম লোড ComponentFactoryResolver এবং গতিশীল উপাদানের পরিশেষে সেটিং ডেটা।

import { Component, Input, OnInit, AfterViewInit, ViewChild, ComponentFactoryResolver, OnDestroy } from '@angular/core';
import { DashboardTileWidgetHostDirective } from './DashbardWidgetHost.Directive';
import { TileModel } from './Tile.Model';
import { WidgetComponentService } from "./WidgetComponent.Service";


@Component({
    selector: 'dashboard-tile',
    templateUrl: 'app/tile/DashboardTile.Template.html'
})

export class DashboardTileComponent implements OnInit {
    @Input() tile: any;
    @ViewChild(DashboardTileWidgetHostDirective) widgetHost: DashboardTileWidgetHostDirective;
    constructor(private _componentFactoryResolver: ComponentFactoryResolver,private widgetComponentService:WidgetComponentService) {

    }

    ngOnInit() {

    }
    ngAfterViewInit() {
        this.renderComponents();
    }
    renderComponents() {
        let component=this.widgetComponentService.getComponent(this.tile.componentName);
        let componentFactory = this._componentFactoryResolver.resolveComponentFactory(component);
        let viewContainerRef = this.widgetHost.viewContainerRef;
        let componentRef = viewContainerRef.createComponent(componentFactory);
        (<TileModel>componentRef.instance).data = this.tile;

    }
}

DashboardTileComponent.html

 <div class="col-md-2 col-lg-2 col-sm-2 col-default-margin col-default">        
                        <ng-template widget-host></ng-template>

          </div>

WidgetComponentService

আপনি গতিশীলভাবে সমাধান করতে চান এমন সমস্ত উপাদান নিবন্ধ করার জন্য এটি একটি পরিষেবা ফ্যাক্টরি

import { Injectable }           from '@angular/core';
import { ImageTextWidgetComponent } from "../templates/ImageTextWidget.Component";
@Injectable()
export class WidgetComponentService {
  getComponent(componentName:string) {
          if(componentName==="ImageTextWidgetComponent"){
              return ImageTextWidgetComponent
          }
  }
}

ইমেজটেক্সট উইজেট কম্পোনেন্ট (উপাদানটি আমরা রানটাইমের সময় লোড করছি)

import { Component, OnInit, Input } from '@angular/core';


@Component({
    selector: 'dashboard-imagetextwidget',
    templateUrl: 'app/templates/ImageTextWidget.html'
})

export class ImageTextWidgetComponent implements OnInit {
     @Input() data: any;
    constructor() { }

    ngOnInit() { }
}

যোগ করুন অবশেষে এন্ট্রি কম্পোনেন্ট হিসাবে আপনার অ্যাপ্লিকেশন মডিউলে এই ইমেজটেক্সট উইজেটকম্পোন্টটি যুক্ত করুন

@NgModule({
    imports: [BrowserModule],
    providers: [WidgetComponentService],
    declarations: [
        MainApplicationComponent,
        DashboardHostComponent,
        DashboardGroupComponent,
        DashboardTileComponent,
        DashboardTileWidgetHostDirective,
        ImageTextWidgetComponent
        ],
    exports: [],
    entryComponents: [ImageTextWidgetComponent],
    bootstrap: [MainApplicationComponent]
})
export class DashboardModule {
    constructor() {

    }
}

TileModel

 export interface TileModel {
      data: any;
    }

আমার ব্লগ থেকে মূল রেফারেন্স

অফিসিয়াল ডকুমেন্টেশন

নমুনা উত্স কোড ডাউনলোড করুন


1
আপনি সম্পর্কে উল্লেখ করতে ভুলে গেছেন entryComponents। এটি ছাড়া আপনার সমাধান কাজ করবে না
yurzui

কম্পোনেন্টফ্যাক্টরি রিসলবারটি কৌণিক 2 এ ছিল। এবং আমি মনে করি এটি $ সংকলনের সমতুল্য নয়
yurzui

@ ইউরজুই তবে এটি "সংকলন সঠিক" প্রয়োজনের কাজ করে?
কোড-ইজেড

@ ইউরজুই আমি একই ধরণের বাস্তবায়ন $ সংকলন ব্যবহার করে ব্যবহার করেছি। আমরা যখন মডিউলটি থেকে প্রবেশের উপাদানগুলি সরিয়ে ফেলি তখন এটি ত্রুটি ছুঁড়ে দেবে ইমেজটেক্সট উইজেটকম্পোনটি লোড হয় না। তবে অ্যাপ্লিকেশনটি এখনও কাজ করে
কোড-ইজেড

1
@ বেচারিও সিনিয়র যদি আপনি কোনও মডেল ক্লাসে না ফেলে থাকেন তবে এটি ডিফল্ট গতিশীল হবে। এই উদাহরণে সম্পত্তি ডেটা ধরণের যে কোনও হয়, যার অর্থ আপনি কোনও তথ্য ইনপুট হিসাবে গতিশীল উপাদানটিতে পাস করতে পারেন। এটি আপনার কোডে আরও পঠনযোগ্যতা দেয়।
কোড-ইজেড

9

এই এনপিএম প্যাকেজটি আমার পক্ষে আরও সহজ করে তুলেছে: https://www.npmjs.com/package/ngx-dynamic-template

ব্যবহার:

<ng-template dynamic-template
             [template]="'some value:{{param1}}, and some component <lazy-component></lazy-component>'"
             [context]="{param1:'value1'}"
             [extraModules]="[someDynamicModule]"></ng-template>

3

অর্ডার dinamically একটি উপাদানের একটি দৃষ্টান্ত তৈরি করুন এবং আপনার DOM আপনি নিম্নলিখিত স্ক্রিপ্ট ব্যবহার করতে পারেন এবং কাজ করা উচিত এটি জোড়া জন্য কৌণিক রেসিন :

এইচটিএমএল টেমপ্লেট:

<div>
  <div id="container"></div>
  <button (click)="viewMeteo()">Meteo</button>
  <button (click)="viewStats()">Stats</button>
</div>

লোডার উপাদান

import { Component, DynamicComponentLoader, ElementRef, Injector } from '@angular/core';
import { WidgetMeteoComponent } from './widget-meteo';
import { WidgetStatComponent } from './widget-stat';

@Component({
  moduleId: module.id,
  selector: 'widget-loader',
  templateUrl: 'widget-loader.html',
})
export class WidgetLoaderComponent  {

  constructor( elementRef: ElementRef,
               public dcl:DynamicComponentLoader,
               public injector: Injector) { }

  viewMeteo() {
    this.dcl.loadAsRoot(WidgetMeteoComponent, '#container', this.injector);
  }

  viewStats() {
    this.dcl.loadAsRoot(WidgetStatComponent, '#container', this.injector);
  }

}

1
DynamicComponentLoader আর নেই: '(এর পর অবচিত হয়েছে, সেখানে ComponentResolver ছিল এবং এখন সেখানে ComponentFactoryResolver (হয়। Blog.rangle.io/dynamically-creating-components-with-angular-2 )
11mb

3

কৌণিক টাইপস্ক্রিপ্ট / ES6 (কৌণিক 2+)

একসাথে একসাথে AOT + JIT এর সাথে কাজ করে।

আমি এখানে এটি কীভাবে ব্যবহার করব তা তৈরি করেছি: https://github.com/patrikx3/angular-compile

npm install p3x-angular-compile

উপাদান: একটি প্রসঙ্গ এবং কিছু এইচটিএমএল ডেটা থাকা উচিত ...

এইচটিএমএল:

<div [p3x-compile]="data" [p3x-compile-context]="ctx">loading ...</div>

1
'Angular TypeScript' শিরোনামটির অর্থ কী তা স্পষ্ট নয়। সমাধানটি কি ES5 এবং ES6 এর জন্য অকেজো? এই প্যাকেজের প্রোগ্রাম্যাটিক ব্যবহারের উদাহরণ প্রদান করা সহায়ক হবে, এর প্রত্যক্ষ প্রতিপক্ষ $compile(...)($scope)। এমনকি রেপো রিডমেতে এটিতে কিছুই নেই।
এস্তাস ফ্লাস্ক

2

আপনি সেই উপাদানটি দেখতে পাচ্ছেন যা সাধারণ গতিশীল কৌণিক উপাদানগুলি https://www.npmjs.com/package/@codehint-ng/html-compiler সংকলন করতে দেয়


এটি এই লাইব্রেরি ব্যবহার করে কাজ! :) সুপারিশের জন্য ধন্যবাদ।
হাউসেম ক্ল্যাগো

0

আমি জানি যে এই সমস্যাটি পুরানো, তবে কীভাবে এওটি সক্ষম করে এই কাজটি করা যায় তা নির্ধারণের জন্য আমি কয়েক সপ্তাহ সময় ব্যয় করেছি। আমি কোনও বস্তু সংকলন করতে সক্ষম হয়েছি কিন্তু বিদ্যমান উপাদানগুলি কার্যকর করতে সক্ষম হয়েছি না। ঠিক আছে, আমি অবশেষে কৌশলটি পরিবর্তন করার সিদ্ধান্ত নিয়েছি, কারণ আমি কোনও কাস্টম টেম্পলেট কার্যকর করার মতো কোড সংকলন করতে চাইছিলাম না। আমার ধারণাটি ছিল যে এইচটিএমএল যুক্ত করা উচিত যা যে কেউ করতে পারে এবং বিদ্যমান কারখানাগুলি যদিও লুপ করে। এটি করার মাধ্যমে আমি উপাদান / বৈশিষ্ট্য / ইত্যাদি অনুসন্ধান করতে পারি। এইচটিএমলেমেন্টে উপাদানগুলি নাম এবং কার্যকর করে। আমি এটি কাজ করতে সক্ষম হয়েছি এবং অনুভূত হয়েছিলাম যে এটির জন্য আমার অপরিসীম সময় ব্যয় করা অন্য কেউ বাঁচাতে আমার এটি ভাগ করা উচিত।

@Component({
    selector: "compile",
    template: "",
    inputs: ["html"]
})
export class CompileHtmlComponent implements OnDestroy {
    constructor(
        private content: ViewContainerRef,
        private injector: Injector,
        private ngModRef: NgModuleRef<any>
    ) { }

    ngOnDestroy() {
        this.DestroyComponents();
    }

    private _ComponentRefCollection: any[] = null;
    private _Html: string;

    get Html(): string {
        return this._Html;
    }
    @Input("html") set Html(val: string) {
        // recompile when the html value is set
        this._Html = (val || "") + "";
        this.TemplateHTMLCompile(this._Html);
    }

    private DestroyComponents() { // we need to remove the components we compiled
        if (this._ComponentRefCollection) {
            this._ComponentRefCollection.forEach((c) => {
                c.destroy();
            });
        }
        this._ComponentRefCollection = new Array();
    }

    private TemplateHTMLCompile(html) {
        this.DestroyComponents();
        this.content.element.nativeElement.innerHTML = html;
        var ref = this.content.element.nativeElement;
        var factories = (this.ngModRef.componentFactoryResolver as any)._factories;
        // here we loop though the factories, find the element based on the selector
        factories.forEach((comp: ComponentFactory<unknown>) => {
            var list = ref.querySelectorAll(comp.selector);
            list.forEach((item) => {
                var parent = item.parentNode;
                var next = item.nextSibling;
                var ngContentNodes: any[][] = new Array(); // this is for the viewchild/viewchildren of this object

                comp.ngContentSelectors.forEach((sel) => {
                    var ngContentList: any[] = new Array();

                    if (sel == "*") // all children;
                    {
                        item.childNodes.forEach((c) => {
                            ngContentList.push(c);
                        });
                    }
                    else {
                        var selList = item.querySelectorAll(sel);

                        selList.forEach((l) => {
                            ngContentList.push(l);
                        });
                    }

                    ngContentNodes.push(ngContentList);
                });
                // here is where we compile the factory based on the node we have
                let component = comp.create(this.injector, ngContentNodes, item, this.ngModRef);

                this._ComponentRefCollection.push(component); // save for our destroy call
                // we need to move the newly compiled element, as it was appended to this components html
                if (next) parent.insertBefore(component.location.nativeElement, next);
                else parent.appendChild(component.location.nativeElement);

                component.hostView.detectChanges(); // tell the component to detectchanges
            });
        });
    }
}

-5

আপনি যদি এইচটিএমএল কোডটি ব্যবহার করতে চান তবে নির্দেশিকা ব্যবহার করুন

<div [innerHtml]="htmlVar"></div>

আপনি যদি কোনও স্থানে পুরো উপাদানটি লোড করতে চান তবে ডায়নামিক কম্পোনেন্টলডার ব্যবহার করুন:

https://angular.io/docs/ts/latest/api/core/DynamicComponentLoader-class.html


2
আমি একটি স্ট্রিং হিসাবে এইচটিএমএল এর টুকরো টুকরো টুকরো টুকরো টুকরো ইনজেকশন করতে চাই এবং এটি একটি উপাদান সংকলককে দিতে পারি এবং তারপরে আমার ডিওমে that উপাদানটি যুক্ত করতে চাই। আপনার সমাধানগুলির কোনওটি কীভাবে কাজ করতে পারে তার উদাহরণ দিতে পারেন?
পিক্সিটসেট

3
ইনারএইচটিএমএল ব্যবহার করে এইচটিএমএলভারের কোনও উপাদান সংকলন করে না
জুন 17
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.