如何使用AngularJS将元素的id传递给指令

时间:2018-01-21 05:11:06

标签: angularjs

这是非常基本的,也是我的第一个指示,但我很难搞清楚。这是我的指示:

app.directive('rotateIcon', rotateIcon);

rotateIcon.$inject = ['$timeout'];

function rotateIcon() {
    return {
        link: function (event) {
            console.log(angular.element(event.target).attr('id'));
        }
    };
}

我的HTML代码段:

<i class="fas fa-sync-alt"
          id="wallet-refresh"
          ng-click="vm.setBalance();"
          rotate-icon></i>

如何在指令内捕获<i>的id作为变量?

2 个答案:

答案 0 :(得分:1)

来自docs链接函数的

接受4个参数df.withColumn('upper',lit(thedict_bc.value.get(col('key'),"--"))).show() # +---+-----+ # |key|upper| # +---+-----+ # | a| --| # | b| --| # +---+-----+ df.withColumn('upper',lit(thedict_bc.value.get(df.key,"--"))).show() # +---+-----+ # |key|upper| # +---+-----+ # | a| --| # | b| --| # +---+-----+ df.withColumn('upper',lit(thedict_bc.value.get(df.key.cast("string"),"--"))).show() # +---+-----+ # |key|upper| # +---+-----+ # | a| --| # | b| --| # +---+-----+ ,所以在第3个参数中你只有id,或者元素有这样的任何其他属性scope, element, attrs, ctrl

例如,您也可以为attrs.id提供rotate-icon之类的值,并将其用作rotate-icon="val1"

答案 1 :(得分:0)

你可以使用

 scope: {
        id: '=',
    },
指令

中的

   app.directive('rotateIcon', rotateIcon);

    rotateIcon.$inject = ['$timeout'];

    function rotateIcon() {
        return {
 scope: {
        id: '=',
       },
            link: function (element) {
                console.log(element.attr('id'));
            }
        };
    }

和你的html标签:

<i class="fas fa-sync-alt"
          id="wallet-refresh"
          ng-click="vm.setBalance();"
          rotate-icon></i>