加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angularjs – 使用指令添加ng- *属性

发布时间:2020-12-17 10:26:08 所属栏目:安全 来源:网络整理
导读:我正在尝试将简单的ng-mouSEOver绑定添加到由指令管理的元素.但是colud没有让它运转起来. @ http://jsbin.com/aqibij/2/edit 我在添加ng-mouSEOver绑定后尝试重新编译元素.指令.compile和外部控制器运行,但指令.linker不运行. @ http://jsbin.com/ikebed/1/e
我正在尝试将简单的ng-mouSEOver绑定添加到由指令管理的元素.但是colud没有让它运转起来.

@ http://jsbin.com/aqibij/2/edit

我在添加ng-mouSEOver绑定后尝试重新编译元素.指令.compile和外部控制器运行,但指令.linker不运行.

@ http://jsbin.com/ikebed/1/edit

我已将$compile’转移到链接器中.运行正常,ng-mouSEOver运行正常,但在链接器中重新编译会导致无限循环,最终导致浏览器崩溃:)

如何使用指令将ng- *绑定添加到元素?我在这些方法中做错了什么?

我以为你跟我在同一条船上,但也许你不是.无论哪种方式,这里有两个解决方案.我被困在第二个.

1)特定要素的指令

如果你知道你正在处理的元素将是div,span,h1,无论什么 – 或者它无关紧要(取一个元素并用你需要的元素替换它).

HTML

<div data-mydirective>
    <span>some other stuff</span>
    <div>more stuff</div>
</div>

指示

module.directive( 'mydirective',[ function() {
    return {
        restrict: "A",controller: function( $scope ) {
            $scope.test = function() {
                console.log('howdy');
            }
        },template: "<div data-ng-transclude data-ng-mouSEOver='test()'></div>",transclude: true,replace: true,link: function ( scope,element,attrs ) {

        }
    };
}]);

输出

<div ng-mouSEOver="test()" data-ng-transclude="" data-mydirective="">
    <span class="ng-scope">some other stuff</span>
    <div class="ng-scope">more stuff</div>
</div>

2)非特定元素的指令

这是我面临的问题.基本上,如果你有一个可能在h1,h2,div,nav等上的指令,你想在指令中添加你的ng- *和属性.

您不能使用模板,因为您不知道该元素是什么.不想拿一个h1并用div替换它吧?这就是我走下编译路线的原因.好吧,模板实际上可以是一个我们可以访问元素和attrs的函数.

指示

module.directive( 'mydirective',template: function( element,attrs ) {
            var tag = element[0].nodeName;
            return "<"+tag+" data-ng-transclude data-ng-mouSEOver='test()></"+tag+">";
        },attrs ) {

        }       
    }   
}]);

HTML /输出

与上述相同.将HTML中的div元素更改为nav,输出将镜像更改.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读