按角度ng重复中的行限制文本大小
Limit text size by lines in angular ng-repeat
我想根据ng-repeat
中的文本限制<p>
的行数,我的ng-repeat loop
:
<ul class="list-unstyled">
<li ng-repeat="comment in ad.comments>
<p id="moreButton"> {{comment.text | limitTo: CommentTextLimit}}
<a ng-show="comment.text.length>25"> <span id="moreLess" span ng-click="changeLength(CommentTextLimit)" >{{moreLessText}}</span></a>
</p>
</li>
</ul>
我想限制comment.text
字段,如果用户单击show more
按钮,会出现更多的行,第一个问题是任何更改都适用于所有注释,而不是一个,第二个问题是我想按行而不是按comment.text.length
进行限制
过去我使用了两种不同的技术来解决这个问题。有时我只是将字符串的长度按照固定的长度连接起来。
既然你说你不想使用这种技术,我做过几次的另一种方法是将css样式max-height
和overflow:hidden
添加到边界元素中。
然后,您可以创建一个指令来检测元素的实际高度,并判断元素的一部分是否因max-height
而隐藏
(您可以这样做:https://stackoverflow.com/a/143889/230377)
如果元素"溢出",则意味着部分文本被隐藏,然后我会在边界元素的右下角显示一个"查看更多"链接
我会使用css(而不仅仅是内联添加)将这个元素放在右下角
"see more"元素的css应该是这样的:
.see-more-link {
position:absolute;
bottom:0; right:0;
}
您还需要将边界元素设置为具有position:relative
。
对不起,我想在我的一个github转发中添加一个链接到这方面的工作示例,但我现在找不到。。。希望这能有所帮助。
所以这里似乎有两个问题:
- 限制你在
<p>
标签中的行数:为此,你可以尝试上一条评论中的建议,也可以在你的ng repeat中使用track-by-$index选项 - 将更改应用于所有注释:在您的ng-click方法中,传递要将更改应用到的元素的id/对象。使用ng-reeat的$index功能创建/定义id
相关文章:
- ng在下拉列表和文本区域提交
- 如何显示文本长度,即使它超过ng最大长度
- 如何为动态创建的文本区域中输入的值更新ng模型
- 通过ng-if设置隐藏文本框的值
- 延长符-在ng重复中获取子元素的文本
- 如何从NG重复更改文本框值
- 通过 NG 单击选择文件或文本区域数据
- 如何在手动插入一些文本后更新文本区域的ng模型
- 输入文本框 ng-repeat内的验证
- AngularJS ng通过对象中的一个属性和一个文本框重复筛选
- 输入文本的ng重复没有填充指令中的ng模型
- 为什么 AngularJS 在使用 ng-model 时不会在文本框上设置长度属性
- 如果文本筛选器在ng重复中未返回结果,则显示消息
- 使用jQuery获取h4 class=“”的文本内容;ng结合”;超出Angular范围
- Ng模型在AngularJS中重置文本区域后未更新
- ng标记输入,不允许在文本框中输入两次相同的文本
- 如何使用$scope和ng-bind在AngularJS中检索文本框条目
- AngularJS ng-click:如何将行数据传递到模态弹出文本框
- Angularjs -从输入文本ng-model填充json数组
- 当非空时,Angular文本ng-minlength