我正在尝试创建一个指令来插入一个跨度来填充空元素。
假设我想从范围内列出表中的一些数据。我想使用指令,而不是必须 ng-if
范围内的所有内容,然后显示一些替代方案。像这样:
<tr ng-repeat="certificate in vm.certificates">
<td fill-blank>{{certificate.documentDate | date:'dd.MM.yyyy'}}</td>
</tr>
而不是:
<tr ng-repeat="certificate in vm.certificates">
<td>
<div ng-if="certificate.documentDate">{{certificate.documentDate | date:'dd.MM.yyyy'}}</div>
<div ng-if="!certificate.documentDate">—</div>
</td>
</tr>
这是我到目前为止得到的代码..唯一的问题是表达式{{certificate.documentDate | date:'dd.MM.yyyy'}}
尚未编译。
export default() => {
return {
restrict: 'A',
link: function($scope, element, attrs) {
let content = element.text();
let pattern = /^\s+$/;
if (content.match(pattern) || content.length === 0) {
let fill = angular.element(`<span class="u-txt-faded">—</span>`);
element.append(fill);
}
}
};
}
这里变量content
不是格式化日期,而是“{{certificate.documentDate | date:'dd.MM.yyyy'}}”
编译后如何获取元素的内容?
最佳答案
您可以使用 angular.element.ready。元素将被编译。
关于javascript - 在指令中编译后获取元素的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33504172/