需要帮助解决如何在被引用于另一个应用程序的可重用组件中包含图片的问题。
例如,我有一个名为UI-Common的Angular应用程序,其中包含常见组件,还有一个名为Command-Center的Angular应用程序,它将使用这些常见组件。
在UI-Common中,有一个名为my-control.component的组件,其定义如下:
[my-control.component.html]
在Command-Center中,它会在package.json文件中添加UI-Common作为依赖项。创建了一个Command-Center组件,并使用my-control.component如下:
[app.module.ts]
例如,我有一个名为UI-Common的Angular应用程序,其中包含常见组件,还有一个名为Command-Center的Angular应用程序,它将使用这些常见组件。
在UI-Common中,有一个名为my-control.component的组件,其定义如下:
[my-control.component.html]
<div>
<img src="assets/images/myImage.png"/>
<div class"username" *ngIf="user">
<p><strong>{{user.companyName}}</strong></p>
<p>{{user.firstName + ' ' + user.lastName}}</p>
</div>
[my-control.component.ts]
import { Component, Input } from '@angular/core';
import { User } from '../../models/user';
@Component({
selector: 'my-control',
templateUrl: './my-control.component.html',
styleUrls: ['./my-control.component.scss'],
})
export class MyControlComponent {
@Input() user: User;
constructor() {
}
}
在Command-Center中,它会在package.json文件中添加UI-Common作为依赖项。创建了一个Command-Center组件,并使用my-control.component如下:
[app.module.ts]
...
import { HomeComponent } from './home/home.component';
import { MyControlComponent } from 'ui-common';
@NgModule({
declarations: [
...,
HomeComponent,
MyControlComponent,
...
],
...
})
export class AppModule { }
[home.component.html]
<my-control [user]=user></my-control>
<div class="homeContent">
blah blah blah...
</div>
[home.component.ts]
import { Component } from '@angular/core';
import { User } from 'ui-common';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss']
})
export class HomeComponent {
user: User;
constructor() {
this.user = new User();
this.user.companyName = 'iHeartMedia';
this.user.firstName = 'John';
this.user.lastName = 'Smith';
}
}
问题是当从Command-Center运行时,my-control上的图像根本不加载。这似乎是因为使用的图像路径“assets/images/myImage.png”在Command-Center中不存在。我不想在Command-Center的资产文件夹中保存图像的副本。如何正确处理通用组件中的图像?