Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 库中的组件不能与ngIf/ngFor一起使用_Angular - Fatal编程技术网

Angular 库中的组件不能与ngIf/ngFor一起使用

Angular 库中的组件不能与ngIf/ngFor一起使用,angular,Angular,我有一个应用程序,我正试图升级到angular 5和library tize。 我设置了ng Packagegr,以便构建和绑定lib,这是没有问题的,除非我尝试将其中一个组件与ngIf或NGF一起使用,因为它们给出了错误信息 HeaderComponent.html:13 ERROR Error: StaticInjectorError[ViewContainerRef]: StaticInjectorError[ViewContainerRef]: NullInjectorE

我有一个应用程序,我正试图升级到angular 5和library tize。 我设置了ng Packagegr,以便构建和绑定lib,这是没有问题的,除非我尝试将其中一个组件与ngIf或NGF一起使用,因为它们给出了错误信息

HeaderComponent.html:13 ERROR Error: StaticInjectorError[ViewContainerRef]: 
  StaticInjectorError[ViewContainerRef]: 
    NullInjectorError: No provider for ViewContainerRef!
    at _NullInjector.get (core.js:993)
在运行时。我环顾四周,尝试了一些不同的东西,但似乎没有什么能解决它

以下是库的相关模块代码

@NgModule({
imports: [
    CommonModule,
    FormsModule,
    RouterModule,

    /* Bootstrap Imports */
    AccordionModule, 
    AlertModule, 
    ButtonsModule, 
    CarouselModule, 
    CollapseModule, 
    BsDropdownModule, 
    ModalModule, 
    PaginationModule, 
    ProgressbarModule, 
    RatingModule, 
    TabsModule, 
    TimepickerModule, 
    TooltipModule, 
    TypeaheadModule, 
    DatepickerModule,

    ServicesModule,
],
declarations: [
    LayoutComponent,
    HeaderComponent,
    FooterComponent,
    OffsidebarComponent,
    SidebarComponent,
    UserblockComponent,
    OverlayComponent,
    BusyIndicatorComponent
],
exports: [
    LayoutComponent
],
providers: [
    UserblockService
]
})
export class ComponentsModule {}
下面是报告错误的HTML

          <a class="hidden-xs" trigger-resize="" (click)="toggleCollapsedSideabar()" *ngIf="!isCollapsedText()">
            <i class="material-icons">menu</i>
          </a>

菜单

您应该将BrowserModule添加到导入阵列中

@NgModule({
imports: [
    BrowserModule, <----- add this
    CommonModule,
    FormsModule,
    RouterModule,
@NgModule({
进口:[

BrowserModule,在将库添加到主应用程序之前,从库的
包中删除依赖项。json
对我来说是一个解决办法。

在消费应用程序的
angular.json
中添加preserveSymlinks标志

{"projects": {
    "MyApp": {
      "architect": {
        "build": {
          "options": {
            "preserveSymlinks": true, // <-----
[...]
{“项目”:{
“MyApp”:{
“建筑师”:{
“构建”:{
“选择”:{

“preserveSymlinks”:是的,//我终于通过以下操作完成了设置:

  • 正确设置npm链接(“npm链接”位于库的dist文件夹中,然后“npm链接libname”位于主应用程序文件夹中)
  • 在使用库的应用程序的angular.json中将preserveSymlinks设置为true 正如@Michael R.提到的

    {"projects": { "MyApp": { "architect": { "build": { "options": { "preserveSymlinks": true, // <----- [...]

  • "angularCompilerOptions": {
                        "preserveSymlinks": true,, // <-----
            [...]
    
    {“项目”:{ “MyApp”:{ “建筑师”:{ “构建”:{ “选择”:{
    “保存符号链接”:true,//当我尝试添加浏览器时,它给了我一个错误,注入器现在找不到ngzone…我认为common exported ngif和ngfor也有此问题,我过去也遇到过此问题,并通过以下方式解决了此问题:希望有帮助!你能更准确地描述一下这一点,你做了什么?你删除了库的package.json中的所有内容,然后添加了libra你对主应用程序的npm包感兴趣吗?是的,正是你所说的。从你的库的
    package.json
    文件中删除你在消费应用程序中不需要的所有依赖项。例如,我只有一个,它是slider库。你不需要消费应用程序已经拥有的任何东西,即Angle包。这现在会导致NullInjectorError:没有NgZone的提供程序!