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

标签 javascript angularjs angularjs-directive

我正在尝试创建一个指令来插入一个跨度来填充空元素。

假设我想从范围内列出表中的一些数据。我想使用指令,而不是必须 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'}}”

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

最佳答案

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

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

关于javascript - 在指令中编译后获取元素的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33504172/

相关文章:

javascript - Angular 可以为对象(不是对象列表)设置默认选项吗?

javascript - 访问iframe的顶部html和body标签

javascript - 获取原始字符串以用于 Play Framework 2.0 中的 Javascript

angularjs - 如何插入带有内插表达式的 HTML 注释?

angularjs - Angular 使用 $http 和 YQL

html - 如何检测 angular.js 中的 keydown 或 keypress 事件?

javascript - 使用 AngularJs 显示图像预览并上传文件

javascript - 在javascript中查找具有相同自定义属性的元素数量

javascript - 如何使用 While 循环继续更改元素

javascript - AngularJS 中的日期验证