.width()在运行时更改元素中的数据时不起作用?

时间:2018-06-27 09:43:15

标签: jquery angular

这里是我要获取字符串中项目的计数的场景,以便当集合中有很多值时,它将显示一些并显示总值的计数,但是这里的挑战是,即时通讯更改了给定的字符串中的值插值。

.ts:

showCoverageDetails(){
    this.policyCoverage.forEach((item,i) => {
        if(i == 0){
            this.coverageDetail = item.CoverageType+", ";
        } else if(i == this.policyCoverage.length-1){
            this.coverageDetail = this.coverageDetail + item.CoverageType;
        } else {
            this.coverageDetail = this.coverageDetail + item.CoverageType + ", " ;
        }
    })
}

上面是调用该函数以将数据填充为字符串的方法。

html

<div *ngIf="coverageDetail;else coverageBlock">
    <p id="policycoverage"  [title]="coverageDetail">{{ coverageDetail | ellipsisWithItemCount : 'policycoverage' }}</p>
</div>
<ng-template #coverageBlock>
    <p>{{ 'POLICY_MODULE.COVERAGE_PERIL.NO_COVERAGE_SELECTED' | translate }}</p>
</ng-template>          

这是html代码ellipsiswithitemcount是自定义管道。 管道使用元素ID和字符串值,这里是管道代码

 $(document).ready(function () {
    for (i = 0; i < itemCollection.length; i++) {
        if (i < itemCollection.length - 1)
            $('#' + elementId).append(itemCollection[i] + ',');
        else
            $('#' + elementId).append(itemCollection[i]);

        if ($('#' + elementId).width() > $('#' + elementId).parent().width() * 0.8) {
            break;
        }
    }

    if ($('#' + elementId).width() > $('#' + elementId).parent().width() * 0.8) {
        finalString = $('#' + elementId).append(' ... +' + (itemCollection.length - (i + 1)));
        console.log(finalString);
    }
});

在此我没有得到元素的宽度。 $('#'+ elementId ).width()给出0。有人知道原因吗?

0 个答案:

没有答案