Angular 将数组设置为外部角度组件的属性
我的问题如下: 我想在运行时从远程服务器加载外部Angular 将数组设置为外部角度组件的属性,angular,typescript,data-binding,web-component,Angular,Typescript,Data Binding,Web Component,我的问题如下: 我想在运行时从远程服务器加载外部Angular组件。我成功地做到了这一点,多亏了 问题是我需要将一些数据对象传递给我在运行时加载的组件。在来自的帖子中,他这样做,但不针对对象 我正在一步一步地做什么: 首先,我创建一个单独的Angular项目,例如,该项目采用如下数据对象: // creation of element from bundle const script = document.createElement('script'); script.src = 'assets
Angular
组件。我成功地做到了这一点,多亏了
问题是我需要将一些数据
对象传递给我在运行时加载的组件
。在来自的帖子中,他这样做,但不针对对象
我正在一步一步地做什么:
首先,我创建一个单独的Angular
项目,例如,该项目采用如下数据对象:
// creation of element from bundle
const script = document.createElement('script');
script.src = 'assets/random-component.bundle.js';
document.body.appendChild(script);
// creation of new element based on selector from bundle
const data = [{name: 'Dave', age: 19}, {name: 'Charly', age: 23}];
const component = document.createElement('random-component');
component.setAttribute('data', data);
内部RandomComponent.ts
:
Interface Random: {
name: string;
age: number;
}[]
@Input() data: Random;
内部RandomComponent.html
:
<div>
<div *ngFor="let d of data">{{d.name}}</div>
</div>
但是我不能设置这样的属性,有什么想法吗?检查
随机组件中的@Input
名称。您正在尝试设置属性,以便组件中应该存在相同的名称。对于感兴趣的人
我没有传递数组
,而是传递一个带有JSON的字符串化数组
。字符串化(数据)
,它返回一个字符串
,然后我可以传递给属性:
主要部件
const component = document.createElement(identifier);
component.setAttribute('data', JSON.stringify(data));
const content = document.getElementById('content');
content.appendChild(component);
外部组件-随机.Component.ts
parseData(data: string) {
return JSON.parse(data);
}
外部组件-random.Component.html
<div>
<div *ngFor="let d of parseData(data)">{{d.name}}</div>
</div>
{{d.name}
它起作用了!但是单向绑定存在一些问题Hello Sunil,对不起,我忘了提到@Input()被称为数据!您是否在主体中添加了随机组件
组件,还是在创建后添加了一些组件?是的,我添加了<代码>常量内容=document.getElementById('content')代码>content.appendChild(组件)代码>需要为此执行多个检查。你可以做的是,删除所有内容,只保留普通的html内容,并检查是否至少可以在页面中看到组件。设置属性是下一步。我已经可以在页面中看到该组件,因此对于该部分,它很好,我只是无法传递数组或绑定数据:)