获取角度上附加元素的目标ID

时间:2016-02-04 06:52:41

标签: javascript jquery angularjs

我在我的angularjs项目上获取event.target.id时遇到了问题。

继承我的代码:

输入标记指令

<input-tag-to></input-tag-to>

模块:

angular
.module('emailClient').directive("inputTagTo", function(){
return {
    restrict: "E",
    template: "<input type=text ng-model=toModel autofocus=true addtagto>",
    controller: 'composeController'
}});

以及此处的 addtagto 属性

angular
.module('emailClient').directive("addtagto", function($compile) {
return { 
    link: function(scope, element, attrs) {
        element.bind("keypress", function (event) {
            if (event.which === 13) {
                    scope.addtoArray.push(scope.toModel);
                    var tagModel = scope.addtoArray.slice(-1)[0];
                    angular.element($('#to-box')).append($compile("<span class=\"box-tag\" style=\"padding: 3px;\" id=\""+ tagModel +"\">"+ tagModel +"<span class=\"glyphicon glyphicon-remove\" style=\"cursor:pointer;padding:4px;\" removetagto></span></span>")(scope));
                    event.preventDefault();
                    $('.input-to').val("");
                    scope.toModel = null;
                    $('.input-to').focus();
            }

        });
    },
    controller: 'composeController'
}});
在append元素上

上有一个指令 removeaddto id="+ scope.toModel" +

现在我无法获取event.target.id,我将使用它作为值来删除其元素

angular
.module('emailClient').directive("removetagto", function($compile) {
return { 
    link: function(scope, element, attrs) {
        element.bind("click", function (event) {
            console.log(event);
            console.log(event.target.id);
        });
    },
    controller: 'composeController'
    }});

查看示例图片 enter image description here

enter image description here

的console.log(event.currentTarget); 结果:空ID

1 个答案:

答案 0 :(得分:0)

您需要$event.currentTarget而不是$event.target