Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS:如何从外部访问指令内部定义的属性_Angularjs - Fatal编程技术网

AngularJS:如何从外部访问指令内部定义的属性

AngularJS:如何从外部访问指令内部定义的属性,angularjs,Angularjs,我使用一个指令在文本溢出上放置省略号,称为角度省略号。如果文本有足够的空间,角省略不适用于。我需要知道省略号是否适用于某些文本 查看该指令的代码,我可以看到它的属性似乎与我要查找的匹配-attribute.isTruncated: compile: function(elem, attr, linker) { return function(scope, element, attributes) { /* State Variables */ attri

我使用一个指令在文本溢出上放置省略号,称为角度省略号。如果文本有足够的空间,角省略不适用于。我需要知道省略号是否适用于某些文本

查看该指令的代码,我可以看到它的属性似乎与我要查找的匹配-attribute.isTruncated:

compile: function(elem, attr, linker) {

    return function(scope, element, attributes) {
        /* State Variables */
        attributes.isTruncated = false;
通过设置元素的“data Overflow”属性,它似乎也做了类似的事情,如下所示:

element.attr('data-overflowed', 'false');
这是一个指向指令代码的链接,它不太复杂,也不太长:

我想知道我可以从我的控制器访问这些属性中的任何一个,如果可以,如何访问?如果这是显而易见的,请原谅,但我对指令完全陌生…

还记得
AngularJS
中的“JS”吗
如果您可以通过元素的
id
class
属性找到元素,那么您应该能够使用普通javascript查询它,方法是使用和:


这不是一个完美的解决方案,因为在一些测试框架中,不能保证您有
文档
接口(这就是为什么Angular有
$document
包装器),但它可以满足您的需要(没有jQuery!)。如果
jqLite
(由使用)启用了
find
,而不仅仅是通过ID或类名,那么它会更简单。

您可以尝试
angular.element(element.attr('data-overflow')
?我假设您的意思是内部元素是div的ID?例如:angular.element('div-name').attr('data-overflow')?我试过了,但出现了错误:“jqLite不支持通过选择器查找元素”
document.querySelector("#element-id").getAttribute('data-overflowed');