use*_*483 3 jquery-plugins angular-directive angular
我想创建一个适用于溢出时的指令。我过去曾经使用过dotdotdot jQuery插件,但是在angular 5中它并没有真正起作用。
到目前为止,我正在使用选择器[appDotdotdot]创建一个名为DotdotdotDirective的指令,如下所示:
import { Directive, ElementRef } from '@angular/core';
declare var $: any;
@Directive({
selector: '[appDotdotdot]'
})
export class DotdotdotDirective {
constructor(private el: ElementRef) { }
}
Run Code Online (Sandbox Code Playgroud)
用法很简单:
<h3><a href="#" appDotdotdot>{{data.trip.name}}</a></h3>
Run Code Online (Sandbox Code Playgroud)
我还导入了jQuery插件,以防可以在指令中使用。index.html:
<script src="assets/js/jquery.dotdotdot.js"></script>
Run Code Online (Sandbox Code Playgroud)
我期望代码应该在构造函数中实现,但是我不知道如何在angular 5中使用它?我应该将指令用作jQuery插件的包装器,还是angular对此要求有不同的解决方案?提前致谢!
解决方案1:
{{ (myString.length > 10) ? (myString | slice:0:10) + '...' : myString }}
Run Code Online (Sandbox Code Playgroud)
解决方案2:
@Pipe({
name: 'dotdotdot'
})
export class DotDotDotPipe implements PipeTransform {
transform(value: string, limit: number): string {
return value.length > limit ? value.substring(0, limit) + '...' : value;
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
{{ myString | dotdotdot:10 }}
Run Code Online (Sandbox Code Playgroud)
您只能使用CSS执行此操作。在句子div上尝试一下:
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
Run Code Online (Sandbox Code Playgroud)
... 如果句子对于容器div来说太长,将出现。
| 归档时间: |
|
| 查看次数: |
2163 次 |
| 最近记录: |