Sen*_*mas 5 css typescript angular
我有一个列表和dragula我使用的插件()在某些操作上添加了某些css类.我正在使用Angular5.我想找出某些class(myClass)的存在并删除它并替换为(yourClass).在jquery中,我们可以这样做
$( "p" ).removeClass( "myClass" ).addClass( "yourClass" );
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Angular5中实现这个目标.这里的主要问题是myClass自动添加到li插件所选的内容中.所以使用函数我不能设置类.
当我尝试使用renderer2时,它正在删除css类并添加另一个类.但它只是增加了第一个李.我的代码是
let myTag ;
myTag = this.el.nativeElement.querySelector("li");
this.renderer.addClass(myTag, 'gu-mirrorss')
this.renderer.removeClass(myTag, 'dragbox');
`<div class="right-height" id ='dest' [dragula]='"second-bag"' [dragulaModel]="questions">
{{ questions.length == 0 ? ' Drag and drop questions here ' : ' '}}
<li #vc data-toggle="tooltip" data-placement="bottom" title= {{question.questionSentence}} class="well dragbox" *ngFor="let question of questions; let i = index" [attr.data-id]="question.questionId" [attr.data-index]="i" (click)="addThisQuestionToArray(question,i, $event)" [class.active]="isQuestionSelected(question)" #myId > {{question.questionId}} {{question.questionSentence}}</li>
</div>`
Run Code Online (Sandbox Code Playgroud)
San*_*per 10
ElementRef从angular core 导入 并在构造函数中定义然后尝试下面的代码:
下面的代码行将为您提供第一次出现的<p>Component标签. querySelector为您提供第一项,并querySelectorAll为您提供DOM的所有项目.
import { Component, ElementRef } from "@angular/core";
constructor(private el: ElementRef) {
}
let myTag = this.el.nativeElement.querySelector("p"); // you can select html element by getelementsByClassName also, please use as per your requirement.
Run Code Online (Sandbox Code Playgroud)
添加课程:
if(!myTag.classList.contains('myClass'))
{
myTag.classList.add('myClass');
}
Run Code Online (Sandbox Code Playgroud)
删除类:
myTag.classList.remove('myClass');
Run Code Online (Sandbox Code Playgroud)
小智 10
您可以在 html 中使用 id
<button #namebutton class="btn btn-primary">login</button>
Run Code Online (Sandbox Code Playgroud)
在 your.ts 中添加 viewchild
@ViewChild('namebutton', { read: ElementRef, static:false }) namebutton: ElementRef;
Run Code Online (Sandbox Code Playgroud)
创建一个将触发事件的函数
actionButton() {
this.namebutton.nativeElement.classList.add('class-to-add')
setTimeout(() => {
this.namebutton.nativeElement.classList.remove('class-to-remove')
}, 1000);
}
Run Code Online (Sandbox Code Playgroud)
并调用该函数。
如果您的本机元素未定义,请检查此答案 Angular: nativeElement is undefined on ViewChild
以下是通过课程的多种方法
<some-element [ngClass]="'first second'">...</some-element>
<some-element [ngClass]="['first', 'second']">...</some-element>
<some-element [ngClass]="{'first': true, 'second': true, 'third': false}">...</some-element>
<some-element [ngClass]="stringExp|arrayExp|objExp">...</some-element>
<some-element [ngClass]="{'class1 class2 class3' : true}">...</some-element>
Run Code Online (Sandbox Code Playgroud)
来自官方文档
| 归档时间: |
|
| 查看次数: |
9591 次 |
| 最近记录: |