我有一个HTML字段,它应该显示最近发送给您/从您发送的文本消息的前几行,类似于iphone上的消息。我想要最多两行文本,第二行的末尾用省略号切断。我每行只能按照格式化方式保存45个字符。最好是有一种方法可以正确地进行分词,但我还没有找到。
我还计划使用离子/ cordova构建它,所以我不能依赖纯css,scss或任何其他webkit技巧,所以我试图只使用角度来做这件事。我真的很接近,但我无法得到它。
我的解决方案基本上是使用我的消息文本{{message.text}}
,并使用limitTo
或slice
方法获取返回的数组文本的前45个字符,然后是第二行在它的正下方,在第45个之后的接下来的45个字符。
<div class="row row-center">
<div class="col" style="padding:0px">
<div style="">
{{ message.text | limitTo: 45 }}<br />
{{ message.text.slice(45,90) }}
{{ message.text.length > 45 ? '...' : ''}}
</div>
</div>
</div>
我理解这里的问题,即我使用相同的一组结果,在第一行我得到第一个45,第二行我得到第一个90然后从最后我开始了46 ...这没有意义我意识到但我觉得我很接近,任何指导都很感激。
编辑: 我想我只是想出来,使用切片(上面改了)!现在有人知道如何按字面做这个吗?
答案 0 :(得分:1)
为什么你不能使用limitTo:90(为什么你要将它用作45次????)并在显示消息的字段中启用自动换行。
在控制器中使用limitTo,例如
$filter('limitTo')(input, limit)
$filter('limitTo')(message.text, 90) //In your case limit is 90
在你的情况下,
前45个字符:$filter('limitTo')(message.text, 45)
接下来45 characeter:$filter('limitTo')($filter('limitTo')(message.text, 90),-45);
在HTML中:
{{message.text | limitTo:45}}
{{message.text | limitTo:90 | limitTo:-45}} //This will fetch first 90 characters and removes first 45 from it giving you next 45 characters