作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个结构指令,其行为如下:
<p *myDirective="condition">This is some text</p>
condition
是 false
然后是 <p>
标签是 不是 完全呈现。 condition
是 true
然后是 <p>
标签呈现额外的 class
属性。 <p class="my-added-class">This is some text</p>
*ngIf
,但有额外的行为。
Renderer2
API .
viewContainer
创建嵌入 View ,而第二种方法使用渲染器来操作元素。
@HostBinding
不适用于结构指令,所以这不是一个选项]
最佳答案
当它满足传递给它的表达式(在 setter 中)时,我会考虑在 DOM 上添加类。你可以抢ElementRef
指令内的依赖项并附加一个 class
它的真实性。
@Input() set myDirective(condition: boolean) {
if (condition) {
this.viewContainer.createEmbeddedView(this.templateRef);
this.elementRef.nativeElement.nextElementSibling.classList.add('my-added-class'); // renderer API can be used here
// as Alex and Yurzui suggested
// const view = this.viewContainer.createEmbeddedView(this.templateRef);
// view.rootNodes[0].classList.add('some-class')
} else if (condition) {
this.viewContainer.clear();
}
}
关于angular - 我可以在结构指令中同时做两件事吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53325398/
我一起问这些问题是因为我觉得他们在一起。做一个的方式影响我必须如何做另一个。我是计算机科学/编程/python 新手。 我有一个很长、很复杂的脚本,它不包含任何用户定义的函数。它接受输入并对其进行操作
这是我用于测试目的的简单代码。 boolean isMoving(){ if (a == b) { return true; } else if (a != b) {
我是一名优秀的程序员,十分优秀!