Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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
Jquery 如何使指令使用过滤的HTML属性?_Jquery_Html_Angularjs_Twitter Bootstrap_Angularjs Directive - Fatal编程技术网

Jquery 如何使指令使用过滤的HTML属性?

Jquery 如何使指令使用过滤的HTML属性?,jquery,html,angularjs,twitter-bootstrap,angularjs-directive,Jquery,Html,Angularjs,Twitter Bootstrap,Angularjs Directive,我有一个指令,它构建了一个弹出菜单,可以自动从HTML中收集数据。实际上,它应该将一组符合引导转盘的元素转换为一个列表。一个问题是,每个.item都带有一个属性,该属性的字符串值经过过滤,如: HTML: 我得到了HTML中使用的原始未处理字符串的菜单: {{'My string' | myfilter}} {{'My string 2' | myfilter}} 据我所知,attrs.$observe适用于绑定到指令的元素的属性,但不适用于外部元素 如何使用过滤后的字符串?我尝试将优先级设置

我有一个指令,它构建了一个弹出菜单,可以自动从HTML中收集数据。实际上,它应该将一组符合引导转盘的元素转换为一个列表。一个问题是,每个
.item
都带有一个属性,该属性的字符串值经过过滤,如:

HTML:

我得到了HTML中使用的原始未处理字符串的菜单:

{{'My string' | myfilter}}
{{'My string 2' | myfilter}}
据我所知,attrs.$observe适用于绑定到指令的元素的属性,但不适用于外部元素


如何使用过滤后的字符串?我尝试将优先级设置为极值,但没有效果。

在您的指令中,您必须将transclude属性设置为true,并且必须使用带有ngTransclude属性的html模板来处理html标记内的默认角度过滤器

供参考:


我猜您忽略了编译html模板。 试一试

$compile('
...
')

您可以使用
ng attr
,这将是更方便的解决方案
ng attr data title
将计算插值
{{}
&使用值创建数据标题属性

不要使用
data title=“{{'My string'| myfilter}}”
使用
ng attr data title=“{{'My string'| myfilter}}”

标记

<div class="item" ng-attr-data-title="{{'My string' | myfilter}}">
   ...
</div>

起初我想:抓得好——我忘了转移!但它也不起作用。你的意思是我应该将ng transclude添加到每个旋转木马幻灯片?我希望你必须将ng transclude属性添加到。。。工作时没有一点转换(既不是js也不是html)。但请记住,我的指令并没有输出模板,而是为下拉列表收集数据。谢谢,@pankjparkar。不幸的是,这对我不起作用。无论是
$(el.attr('ng-attr-data-title')}还是
$(el.attr('data-title')})
都不执行此任务。是否使用
ng repeat
呈现此元素?否。这是一个单一的例子。提供菜单项字符串的转盘幻灯片在
$中拍摄。每个
loop@nuton检查我的编辑,你可以使用
$parse
线索是使用
$interpolate
。谢谢你的帮助——把你的答案标记为是把我推向正确方向的答案。
{{'My string' | myfilter}}
{{'My string 2' | myfilter}}
$compile('
    <div class="item" data-title="{{'My string' | myfilter}}">
       ...
    </div>
')
<div class="item" ng-attr-data-title="{{'My string' | myfilter}}">
   ...
</div>
.directive('sectionBuilder', function($interpolate){
    return {
        priority:100,
        restrict: 'C',
        link: function(scope, element, attrs){
            var data = [];
            $('.carousel-inner > .item', '#carousel').each(function(i, el){
                data.push({k: i, v: $interpolate($(el).attr('data-title'))})
            });
        }
    }
})