2017-08-16 86 views
0

我通过从列表中选择(使用$ http请求填充)来添加标记。该标签被添加,但我输入的文本仍然存在于ng-invalid-tag类中。ng-tags-input与自动完成功能无法正常工作

截图 1)首先,

enter image description here

2)分型3个字母来获得HTTP调用。

enter image description here

3)现在选择第一个技能的“角的js'之后。

enter image description here

4)它表明.input.invalid标签被激活。并且不清除占位符。

我的输入标签如下所示。

<tags-input ng-model="employerMyCandidatesCtrl.skillList" placeholder="Skills..." 
    replace-spaces-with-dashes="false" 
    add-from-autocomplete-only="true" 
    display-property="skillName" 
    on-tag-added="employerMyCandidatesCtrl.addTagToSkillData($tag)" 
    on-tag-removed="employerMyCandidatesCtrl.removeTagFromSkillData($tag)"> 
    <auto-complete 
    source="employerMyCandidatesCtrl.loadSkillData($query)" 
    displayProperty="skillName" debounce-delay="500" 
    min-length="3"> 
    </auto-complete> 
</tags-input> 

控制器代码如下。

vm.skillList = []; 
vm.loadSkillData = function(query) { 
    return EmployerServices.getAllSkillsPromise(query); // $http call. 
}; 

vm.addTagToSkillData = function(tag) { 
    if (_.findIndex(vm.skillList, tag) < 0) { 
    vm.skillList.push(tag); 
    } 
}; 

vm.removeTagFromSkillData = function(tag) { 
    var ind = _.findIndex(vm.skillList, tag) > -1 ? vm.skillList.splice(ind, 1) : ''; 
}; 

我在做什么配置错误?

回答

0

有4个属性的onTagAdding, onTagAdded, onTagRemoving, onTagRemoved因此与增加相比,添加了结束的结束属性之间的基本区别是

Adding suffixed tags are expecting a boolean which when true will be added 
or removed based on the tag used. 

但onTagAdded /删除已添加标签,功能因此被称为前我们可以做一些额外的逻辑,或者剥离附加值的ng模型或添加删除的值(不是很容易)。

检查下面的jsfiddle在行动中看到here

我已经做了定制服务,以提供数据的四个属性,所以最终回答你的问题将是使用基于适当的属性(onTagAdding, onTagAdded, onTagRemoving, onTagRemoved)你的用例。从上面的代码,我认为我们不需要自动编写onTagAdded, onTagRemoved

相关问题