Angular2 directives 使用ngFor阅读angular-2的更多信息 {{project.title},{{project.location}} {{project.info} Amaneties:{{project.Amaneties} 较少的 更多
我正在尝试阅读更多关于大文本的内容,但这不适用于带有*ngs的指令。对于解决此问题的任何选项,我认为问题在于id属性中的空格。我能在*年内完成这项工作。试试这个Angular2 directives 使用ngFor阅读angular-2的更多信息 {{project.title},{{project.location}} {{project.info} Amaneties:{{project.Amaneties} 较少的 更多,angular2-directives,Angular2 Directives,我正在尝试阅读更多关于大文本的内容,但这不适用于带有*ngs的指令。对于解决此问题的任何选项,我认为问题在于id属性中的空格。我能在*年内完成这项工作。试试这个id=“阅读更多{{i}}”。 这是我的密码: <div class="row col-sm-12 col-xs-12"> <h4><strong>{{project.title}}, {{project.location}}</strong></h4>
id=“阅读更多{{i}}”
。
这是我的密码:
<div class="row col-sm-12 col-xs-12">
<h4><strong>{{project.title}}, {{project.location}}</strong></h4>
<h5>{{project.info}}</h5>
<h6 #textContent id="read-more {{ i }} ">Amaneties: {{project.amaneties}} </h6>
<div class="read-more-link">
<a readMore [readMore-length]="100" [readMore-element]="textContent">
<span class="less">Less <i class="fa fa-angle-left" aria-hidden="true"></i></span>
<span class="more">More <i class="fa fa-angle-right" aria-hidden="true"></i></span>
</a>
</div>
{{post.name}
继续阅读
我已经删除了“减少阅读…”功能,因为我的应用程序不需要它
我复制了ngx read more库的代码,并对其进行了一些修改。基本上是定制指令,而不是安装包
readmore.directive.ts
<div *ngFor="let post of list;let i = index" [attr.data-index]="i">
<div class="postDescription">
<p #textContent1 id="read-more{{i}}">{{post.name}}</p>
<div class="readMore read-more-link">
<a readMore [readMore-length]="350"
[readMore-element]="textContent1">
<span class="more">Continue reading</span></a>
</div>
</div>
</div>
import{Directive,Input,ElementRef,AfterViewInit,OnChanges}来自“@angular/core”;
@指示({
选择器:“[readMore]”
})
导出类ReadMoreDirective在ViewInit、OnChanges之后实现{
@输入('readMore-length')私有maxLength:number;
@输入('readMore-element')私有元素更改:HTMLElement;
私有文本:字符串;
私有隐藏切换:布尔值=true;
私有文本:字符串;
private iscollected:boolean=true;
构造函数(私有el:ElementRef){}
/**
*@doc
*/
公共ngAfterViewInit(){
this.text=this.elementChange.innerHTML;
this.toggleView();
如果(!this.hideToggle){
this.el.nativeElement.classList.remove('hidden');
}否则{
this.el.nativeElement.classList.add('hidden');
}
this.el.nativeElement.addEventListener('click',(事件:MouseEvent)=>{
event.preventDefault();
this.toggleView();
});
}
/**
*@doc
*/
公共ngOnChanges(){
如果(此.text){
this.toggleView();
}
}
/**
*Toogle视图-是否为全文
*/
private-toggleView():void{
这是determineView();
this.isCollapsed=!this.isCollapsed;
如果(此.isCollapsed){
this.el.nativeElement.querySelector('.more').style.display=“无”;
//this.el.nativeElement.querySelector('.less').style.display=“inherit”;
}否则{
this.el.nativeElement.querySelector('.more').style.display=“继承”;
//this.el.nativeElement.querySelector('.less').style.display=“无”;
}
}
/**
*确定视图
*/
私有determineView():void{
const _elementChange=document.getElementById(this.elementChange.id);
if(this.text.length我认为问题在于id属性中的空格。我可以在*ngFor中执行此操作。请尝试此id=“readmore{{I}}”
。
这是我的密码:
<div class="row col-sm-12 col-xs-12">
<h4><strong>{{project.title}}, {{project.location}}</strong></h4>
<h5>{{project.info}}</h5>
<h6 #textContent id="read-more {{ i }} ">Amaneties: {{project.amaneties}} </h6>
<div class="read-more-link">
<a readMore [readMore-length]="100" [readMore-element]="textContent">
<span class="less">Less <i class="fa fa-angle-left" aria-hidden="true"></i></span>
<span class="more">More <i class="fa fa-angle-right" aria-hidden="true"></i></span>
</a>
</div>
{{post.name}
继续阅读
我已经删除了“减少阅读…”功能,因为我的应用程序不需要它
我复制了ngx read more库的代码,并对其进行了一些修改。基本上是制作了一个自定义指令,而不是安装包
readmore.directive.ts
<div *ngFor="let post of list;let i = index" [attr.data-index]="i">
<div class="postDescription">
<p #textContent1 id="read-more{{i}}">{{post.name}}</p>
<div class="readMore read-more-link">
<a readMore [readMore-length]="350"
[readMore-element]="textContent1">
<span class="more">Continue reading</span></a>
</div>
</div>
</div>
import{Directive,Input,ElementRef,AfterViewInit,OnChanges}来自“@angular/core”;
@指示({
选择器:“[readMore]”
})
导出类ReadMoreDirective在ViewInit、OnChanges之后实现{
@输入('readMore-length')私有maxLength:number;
@输入('readMore-element')私有元素更改:HTMLElement;
私有文本:字符串;
私有隐藏切换:布尔值=true;
私有文本:字符串;
private iscollected:boolean=true;
构造函数(私有el:ElementRef){}
/**
*@doc
*/
公共ngAfterViewInit(){
this.text=this.elementChange.innerHTML;
this.toggleView();
如果(!this.hideToggle){
this.el.nativeElement.classList.remove('hidden');
}否则{
this.el.nativeElement.classList.add('hidden');
}
this.el.nativeElement.addEventListener('click',(事件:MouseEvent)=>{
event.preventDefault();
this.toggleView();
});
}
/**
*@doc
*/
公共ngOnChanges(){
如果(此.text){
this.toggleView();
}
}
/**
*Toogle视图-是否为全文
*/
private-toggleView():void{
这是determineView();
this.isCollapsed=!this.isCollapsed;
如果(此.isCollapsed){
this.el.nativeElement.querySelector('.more').style.display=“无”;
//this.el.nativeElement.querySelector('.less').style.display=“inherit”;
}否则{
this.el.nativeElement.querySelector('.more').style.display=“继承”;
//this.el.nativeElement.querySelector('.less').style.display=“无”;
}
}
/**
*确定视图
*/
私有determineView():void{
const _elementChange=document.getElementById(this.elementChange.id);
如果(this.text.length你找到这个问题的解决方案了吗?如果你有答案,请你把它贴出来。不,我仍然不能解决这个问题。你找到这个问题的解决方案了吗?如果你有答案,请把它贴出来。不,我仍然不能solve@RaghavendraAjegaonkar你到底犯了什么错误?不管怎样,给我一些是时候为它创建一个plunkr了,我会给你一个工作演示。@RaghavendraAjegaonkar你到底得到了什么错误?不管怎样,给我一些时间为它创建一个plunkr,我会给你一个工作演示。