我制作了一个 AngularJS 指令来添加省略号来溢出:隐藏文本。它似乎在 Firefox 中不起作用,而且我不相信我已经尽可能地构建了它。流程是:
- 向 HTML 元素添加指令属性
- 指令将 ng-bind 属性读入作用域
- 指令监视链接功能中 ng-bind 的更改
- 在 ng-bind 更改时,指令会进行一些花哨的计算来确定应该在哪里拆分文本并添加省略号(我没有在此处包含此代码,只是假设它有效)
- 指令将元素的 HTML 设置为等于这个新字符串,而不涉及 ng-bind
HTML
<p data-ng-bind="articleText" data-add-ellipsis></p>
指示
app.directive('addEllipsis', function(){
return {
restrict : 'A',
scope : {
ngBind : '=' // Full-length original string
},
link : function(scope, element, attrs){
var newValue;
scope.$watch('ngBind', function () {
/*
* CODE REMOVED - Build shortened string and set to: newText
*/
element.html(newText); // - Does not work in Firefox and is probably not best practice
});
}
};
});
有问题的行是指令中的最后一行:
element.html(newText)
我假设应该使用一些模板样式的方法?我不清楚如何最好地接近答案。谢谢你的帮助。