我正在尝试制作一个指令,插入一个span来填充空元素。
假设我想从范围列出表格中的一些数据。我想使用指令而不是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'}}”
如何在编译后获取元素的内容?
答案 0 :(得分:1)
您可以使用angular.element.ready。元素将被编译。