Angular 用于内部插入件相邻TML的加载

Angular 用于内部插入件相邻TML的加载,angular,typescript,Angular,Typescript,我通过用户单击动态地将元素附加到模板内,方式如下: this.optionValue = []; youClickMe(){ var moreput = ''; moreput += '<select">'; moreput += '<option *ngFor="let lup of optionValue">{{lup.name}}</option>'; moreput += '</select>'

我通过用户单击动态地将元素附加到模板内,方式如下:

this.optionValue = [];

youClickMe(){
  var moreput = '';
      moreput += '<select">';
        moreput += '<option *ngFor="let lup of optionValue">{{lup.name}}</option>';
      moreput += '</select>';
  var pElement = document.querySelector('.somewhereyoubelong');
      pElement.insertAdjacentHTML('beforeend', moreput);
}
this.optionValue=[];
youClickMe(){
var moreput=“”;

moreput+='Angular不处理特定于角度的标记,如动态添加HTML的匹配组件或指令选择器或绑定

Angular在编译组件时为这些内容生成代码。 编译组件时,组件模板中不包含的内容将被Angular完全忽略


您可以做的是在运行时动态创建和编译角度组件。有关更多详细信息,请参见

请不要这样做。我想知道,如果您编写这样的组件,为什么需要此框架code@yurzui,我就是这么做的。应该怎么做,如何解决问题?非常感谢。这部分是独一无二的,所以实际上并不多与框架相关。框架真正的目的是为了散列。非常感谢您带着respond来到这里。我有点困惑如何以这种有角度的方式来做,就像您在我之前的回答中所说的“DynamicComponentLoader”,我在想它是否与此相关。您首先需要创建一个组件如上面链接的答案中所述,动态地添加组件,然后您可以使用
ViewContainerRef.createComponent
(前面的
DynamicComponentLoader
)嗯,我也需要导入
浏览器
模块才能让它工作。现在,我只是想知道为什么angular会让简单的事情变得如此复杂,虽然我们不能说我们需要使用另一个框架来处理类似的事情,但它不是程序员的编程语言。等等,数据没有插入到父对象中。
const templating = '<p *ngFor="let sizeCat of sizeCategoryBySubCategory" [value]="sizeCat.id">{{sizeCat.name}}</p>';

const tmpCmp = Component({template: templating})(class {});
const tmpModule = NgModule({declarations: [tmpCmp]})(class {});

this._compiler.compileModuleAndAllComponentsAsync(tmpModule).then((factories) => {
  const f = factories.componentFactories[0];
  const cmpRef = f.create(this._injector, [], null, this._m);

  //cmpRef.instance.testText = 'B component';
  cmpRef.instance.sizeCategoryBySubCategory = [
    { id:1, name: 'a'},
    { id:2, name: 'b'},
  ];

  this._container.insert(cmpRef.hostView);
});