在指令中编译后获取元素的内容

时间:2015-11-03 16:24:38

标签: javascript angularjs angularjs-directive

我正在尝试制作一个指令,插入一个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">&mdash;</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">&mdash;</span>`);
                element.append(fill);
            }
        }
    };
}

此处变量content不是格式化日期,而是“{{certificate.documentDate | date:'dd.MM.yyyy'}}”

如何在编译后获取元素的内容?

1 个答案:

答案 0 :(得分:1)

您可以使用angular.element.ready。元素将被编译。

https://docs.angularjs.org/api/ng/function/angular.element