2016-02-02 71 views
0

目前,我正在爲我的搜索欄使用ngTagsInput指令。但是,我無法找到清除選擇結果的方法,或者阻止標記在搜索欄中呈現。ngTagsInput - 如何清除選擇結果?

這是我目前有:

enter image description here

而這正是我試圖讓:

enter image description here

我試着寫一個指令,以檢測輸入按鍵然後使用myEnter = $('tags-item')。remove()嘗試刪除正在創建的元素,但這不僅不起作用,而且也不太理想:

app.directive('myEnter', function() { 
    return function (scope, element, attrs) { 
     element.bind("keydown keypress", function (event) { 
      if(event.which === 13) { 
       scope.$apply(function(){ 
        scope.$eval(attrs.myEnter); 
       }); 

       event.preventDefault(); 
      } 
     }); 
    }; 
}); 
+0

如果你不想標籤,你爲什麼要使用這個組件添加

on-tag-added="tagAdded($tag)" 

在控制器? – sdfacre

+0

我需要標籤,但不在輸入字段內。我只是希望他們在我指定的div內。 – c0de

回答

0

我不知道爲什麼你使用這個組件,而你實際上並不需要標籤。不管怎麼說,你不需要那個自定義指令。添加標籤可以滿足您的所有需求。

即上,

$scope.tagAdded = function(tag) { 
    //just do whatever you want on tag added, 
    //i.e. clear the ngmodel and add it to another array, etc. 
}; 
+0

我想使用組件的自動建議和藥盒功能。我不希望它們在輸入字段中渲染,而是希望將它們渲染爲我指定的div。 – c0de

+0

就像我在這個答案中告訴你的,你可以在tagAdded回調中做你想做的事情。例如,清除ngModel,以便在搜索框中看不到標籤,然後將該標籤添加到另一個數組以顯示在您指定的div上。 – sdfacre

+0

答案不理想,因爲如果我使用自動完成,並且我清除了模型,那麼在指定的div中有重複的機會。 – c0de