noa*_*ner 8 html dom angular-material2 angular angular-cdk
我使用的是 Angular 10,单击后将执行以下函数来执行方向更改:
private changeHtmlDirection(direction: 'rtl' | 'ltr') {
document.getElementsByTagName("html")[0].dir = direction;
}
Run Code Online (Sandbox Code Playgroud)
它运行良好,只是 Angular CDK 没有更新。
我试图找到一个 API 来在运行时更改 Angular CDK 的方向,但没有找到。我看到有一个BidiModule,但它仅用于获取当前方向而不是设置它。
有什么解决办法吗?
小智 2
根据材料文档,您不能更改“html”标签上的“dir”,以免影响 bidi API。您可以在以下链接查看该文档: 双向性文档
但是如果您想使用材质双向性,您可以将“dir”指令添加到根组件中的容器元素中,如下所示:
<div [dir]="documentDirection"> </div>
Run Code Online (Sandbox Code Playgroud)
每当“documentDirection”变量发生变化时,都会发出 bidi“更改发射器”。就像下面的代码一样,您可以订阅它:
constructor(
private dir: Directionality ) {
this.isRtl = dir.value === 'rtl';
this.dir.change.subscribe(() => {
this.isRtl = !this.isRtl;
});
Run Code Online (Sandbox Code Playgroud)
}
归档时间: |
|
查看次数: |
1086 次 |
最近记录: |