2016-02-04 69 views
0

我在我的angularjs項目上獲取event.target.id時遇到了問題。在角度上獲取添加元素的目標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' 
}}); 

在附加元素上有一個指令removeaddtoid="+ 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

控制檯.LOG(event.currentTarget); 結果:空ID

回答

0

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

+0

仍ID是空的,使用event.currentTarget在這裏看到:執行console.log https://ctrlv.cz/en/9wjk –

+0

@nixongalario喜你可以顯示你的控制器的內容「composeController」 – aitnasser