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
Angular 角度5级不';不能使用ngClass指令进行应用_Angular_Angular5_Ng Class - Fatal编程技术网

Angular 角度5级不';不能使用ngClass指令进行应用

Angular 角度5级不';不能使用ngClass指令进行应用,angular,angular5,ng-class,Angular,Angular5,Ng Class,HTML中的所有函数都会被调用,但类不会被附加。所有类都在.css文件中定义。此组件位于另一个组件中。有人能看出什么是错误的,为什么不应用类吗 如果我使用jQuery来添加/删除.addClass()或.removeClass()类。但我想使用Angular工具,而不是直接使用DOM操作 这是我的组件 import { Component, Input, Output, OnInit, EventEmitter } from '@angular/core'; @Component({ se

HTML中的所有函数都会被调用,但类不会被附加。所有类都在.css文件中定义。此组件位于另一个组件中。有人能看出什么是错误的,为什么不应用类吗

如果我使用jQuery来添加/删除.addClass()或.removeClass()类。但我想使用Angular工具,而不是直接使用DOM操作

这是我的组件

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

@Component({
  selector: 'app-popup',
  templateUrl: './popup.component.html',
  styleUrls: ['./popup.component.css']
})

export class PopupComponent implements OnInit {  
  @Input() functionName: string;                
  @Input() fileName: string;                  
  @Input() columnName: string;                


  ngOnInit() {
    this.startPopup();
  }

  startPopup() {   
     this.setMyModalClasses(this.functionName);
     this.setFunctionInputClasses(this.functionName);
     this.setResultBodyClass(this.functionName);
  }

  setFunctionInputClasses(in: string) {     
     return { 'visually-hidden': true };    
  }

  setResultBodyClass(in: string) {    
     return { 'text-active' : false, 'image-active' : true };      
  }

  setMyModalClasses(in: string) {    
      return { 'my-modal-initial': true, 'max-height-90': true };    
  }
}

这是我的HTML

<div class="my-modal" [ngClass]="setMyModalClasses()">
  <div class="my-modal-content">
    <div class="initial-display">
      <div id="functon-input" class="functon-input" 
                              [ngClass]="setFunctionInputClasses()">
        should not be on display
      </div>
    </div>

    <div class="result-display">
      <div id="result-body" class="result-body" 
                            [ngClass]="setResultBodyClass()">
        ABC ABC ABC
      </div>
    </div>
  </div>
</div>

不应该展出
美国广播公司

您的函数返回的是样式,而不是类名,因此您可能应该尝试使用[ngStyle],而不是[ngClass]。

函数setMyModalClasses()没有传入参数,而是在TS文件中传入参数。所有功能都相同。
我认为startPopup()是不必要的

setFunctionInputClass的:sring中有一个输入错误。无论如何,为什么那个类函数有一个参数?在htmlwhich
.css
文件中没有使用它。您在声明那些css样式吗?@krishnannijeevan感谢您注意类型。我会改正的。但是这种类型在我的真实代码中没有,只有在这里。在函数的某个参数处。。。我简化了代码,以便专注于这一点(当然,我在发布之前检查了我的简化代码)。@Pengyy根据组件定义,所有css类都在popup.component.css文件中。不,我的函数返回css类,当然,有一系列样式。问题是div没有从setFunctionInputClasses或class=“functon input”获取所需的类?我的setFunctionInputClasses()正在尝试向div添加其他类。在这种特殊情况下,它需要附加一个视觉隐藏类,该类在css文件中定义如下:。视觉隐藏{display:none;}何处是。视觉隐藏已定义?在popup.component.css或父组件css?所有css类(包括可视隐藏)都在popup.component.css文件中定义。您说:“…没有传递参数…”是什么意思?你能为我的任何一个函数提供你的例子吗?