angular - 如何获取组件 HTML 中的属性值?
问题描述
我有一个表格,点击时我正在排序。我附加了指令,我正在动态更改data-order="desc"
点击时的属性,因此它可以是asc
或desc
。它在表头单击时更改。
<th scope="col" [appSort]="dataSource$" (sortObservableEmitter)="test($event)" data-order="desc" data-name="firstname">first name
</th>
现在我想在我的桌子上显示箭头 - 当它上升时我想显示向上箭头字体真棒图标。何时data-order
更改为desc
我想显示向下箭头的字体图标。
但是当我尝试例如
<th scope="col" [appSort]="dataSource$" (sortObservableEmitter)="test($event)" data-order="desc" data-name="firstname">first name
<i *ngIf="data-order == 'asc'" class="fas fa-arrow-up"></i>
</th>
它不工作。
我怎样才能在我的ngIf
指令中获得 的值data-order
?
解决方案
在指令中,您可以指示“exportAs”,例如参见此链接
所以如果你的指令是这样的
@Directive({
selector: '[appSort]',
exportAs: 'appSort' //<--add this line
})
....
//I imagine you has a variable sortDirection
sortDirection:string=null;
您可以使用模板引用变量访问指令的公共变量(由于 Angular 中的缺陷,所有变量都是公共的)
如果我想象有一个变量被称为例如sortDirection
你可以写
<th scope="col" [appSort]="dataSource$" #colFirstName="appSort"...>first name
<i *ngIf="colFirstName.sortDirection == 'asc'" class="fas fa-arrow-up"></i>
</th>
注意:取而代之的是两个 *ngIf,我更喜欢使用 ngClass 的方式
<i [ngClass]="colFirstName.sortDirection=='asc'?'fas fa-arrow-up':
colFirstName.sortDirection=='desc'?'fas fa-arrow-down':null"></i>
推荐阅读
- c# - 无法通过在实体框架工作asp.net MVC中传递字符串值从数据库中获取数据
- ios - 无法使用在真实设备 iOS 上运行的 React Native 应用程序连接到 localhost api
- r - 从R中的字符串中提取字段和值
- xamarin.android - 按包名关闭(杀死)我的应用程序中的另一个应用程序
- javascript - 如何在jQuery中绑定多个事件
- scala - 在 Akka Streams 中模拟源
- sql - SSAS:如何生成所有有权访问多维数据集的用户的 csv?
- python - 几乎在列表列表中列出 Python
- python - 我如何预测python中的结果?
- laravel - 在 laravel 中显示 Not Acceptable 406 错误