AngularJS指令修改ng绑定并添加省略号
我已经做了一个AngularJS指令,在overflow中添加一个省略号:隐藏文本。它在Firefox中似乎不起作用,我也不相信我已经尽可能好地构建了它。流程是:AngularJS指令修改ng绑定并添加省略号,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我已经做了一个AngularJS指令,在overflow中添加一个省略号:隐藏文本。它在Firefox中似乎不起作用,我也不相信我已经尽可能好地构建了它。流程是: 向HTML元素添加指令属性 指令将ng bind属性读入范围 指令监视链接函数中ng bind的更改 在ng bind change上,指令进行了一些奇特的计算,以确定文本应该拆分和添加省略号的位置(我在这里并没有包含这段代码,只是假设它可以工作) 指令将元素的HTML设置为等于此新字符串,而不接触ng bind HTML <p
<p data-ng-bind="articleText" data-add-ellipsis></p>
<p data-ng-bind="articleText | addEllipsis"></p>
有问题的一行是指令中的最后一行:
element.html(newText)
我假设应该使用一些模板风格的方法?我不清楚如何最好地找到答案。感谢您的帮助。如果您将
数据ng bind=“articleText”
替换为ng model=“articleText”
,它应该可以在Chrome和Firefox中使用。我不知道为什么,也许是虫子?但这是一个快速解决方案
如果你对差异感兴趣,你可以看看这个。但是在不同的浏览器中行为的不同确实有点奇怪 如果用
ng model=“articleText”
替换data ng bind=“articleText”
,它应该可以在Chrome和Firefox中使用。我不知道为什么,也许是虫子?但这是一个快速解决方案
如果你对差异感兴趣,你可以看看这个。但是在不同的浏览器中行为的不同确实有点奇怪 您可以使用一个。大概是这样的:
过滤器
app.filter('addEllipsis', function () {
return function (input, scope) {
if (input) {
// Replace this with the real implementation
return input.substring(0, 5) + '...';
}
}
});
HTML
<p data-ng-bind="articleText" data-add-ellipsis></p>
<p data-ng-bind="articleText | addEllipsis"></p>
您可以使用。大概是这样的:
过滤器
app.filter('addEllipsis', function () {
return function (input, scope) {
if (input) {
// Replace this with the real implementation
return input.substring(0, 5) + '...';
}
}
});
HTML
<p data-ng-bind="articleText" data-add-ellipsis></p>
<p data-ng-bind="articleText | addEllipsis"></p>