我正在使用一个指令将省略号放在文本溢出上,称为angular-ellipsis。如果文本有足够的空间,则角度省略号不适用于...#。我需要知道省略号是否应用于某些文本。
查看该指令的代码,我可以看到它的属性似乎与我要查找的属性相匹配 - attribute.isTruncated:
compile: function(elem, attr, linker) {
return function(scope, element, attributes) {
/* State Variables */
attributes.isTruncated = false;
通过设置数据溢出的'似乎也可以做类似的事情。这样的元素属性如下:
element.attr('data-overflowed', 'false');
这是指令代码的链接,它不太复杂或太长:
https://github.com/dibari/angular-ellipsis/blob/master/src/angular-ellipsis.js
我想知道我可以从我的Controller访问这些属性中的任何一个,如果是这样的话,怎么样?如果这很明显,请原谅我,但我对指令完全不了解......
答案 0 :(得分:1)
记住AngularJS
中的“JS”
如果您可以通过id
或class
属性找到您的元素,那么您应该可以使用普通的javascript查询它,使用querySelector
和getAttribute
:
document.querySelector("#element-id").getAttribute('data-overflowed');
这不是一个完美的解决方案,因为在某些测试框架中,您无法保证拥有document
接口(这就是Angular拥有$document
包装器的原因),但它可以满足您的需求(无需jQuery的!)。如果jqLite
(由angular.element
使用)通过ID或类名启用find
,而不仅仅是标记名称,则会更简单。