Angularjs 在指令内单击ng重复
我正在尝试创建一个简单的自动完成标记指令。但是下拉菜单上的Angularjs 在指令内单击ng重复,angularjs,angularjs-directive,angularjs-scope,ng-repeat,angularjs-ng-click,Angularjs,Angularjs Directive,Angularjs Scope,Ng Repeat,Angularjs Ng Click,我正在尝试创建一个简单的自动完成标记指令。但是下拉菜单上的上的ng单击将不会触发。我确信这是某种范围问题,但我不明白为什么。有人能告诉我如何让这个ng点击开火吗?谢谢 以下是模板: <article ng-click="focus()"> <div class="tags-container"> <div ng-repeat="selectedTag in selectedTags" ng-click='removeTag($index)' clas
上的ng单击将不会触发。我确信这是某种范围问题,但我不明白为什么。有人能告诉我如何让这个ng点击开火吗?谢谢
以下是模板:
<article ng-click="focus()">
<div class="tags-container">
<div ng-repeat="selectedTag in selectedTags" ng-click='removeTag($index)' class="tag">
<span class="tagName">{{selectedTag}}</span>
</div>
<input type="text" ng-focus='activate()' ng-blur='listActive = false' id="searchInput" ng-keydown="checkKeyDown($event)" class="tags" ng-model="searchText" />
</div>
<ul id="suggestions" class="suggestions-list" ng-class="{active : listActive}">
<li ng-repeat="tag in tagList | filter:searchText" class="tags" ng-click="addToSelectedTags($index)" ng-mouseover="$parent.index=$index" ng-class="{active : index===$index}">
<strong>{{tag}}</strong>
</li>
</ul>
</article>
这是html中的指令
<tag-complete tag-list="vm.suggestions" selected-tags='vm.query.fields'></tag-complete>
您的ng点击应该触发。我尝试将您的代码输入到小提琴中,并对其进行了一些修改:
可以尝试单击li元素。我发现这部分代码有问题:
ng-click="addToSelectedTags($index)"
当您在searchInput中写入内容时,它将过滤您的ng重复列表$因此,索引将与标记列表中的索引不匹配,它可能会尝试添加已存在于selectedTags列表中的内容。我将其更改为直接输入标签:
ng-click="addToSelectedTags(tag)"
我在代码中所做的其他更改只是为了让它在JSFIDLE中运行。
这对你的问题有帮助吗?我能想到的另一个原因是与css相关的东西 我讨厌那个家伙,你这么做可能只是为了好玩,但以防万一,你看到了吗:如果你在addToSelectedTags
(console.log)中添加一个日志,你什么都看不到?它应该是这样工作的我在函数中放置了一个断点,它不会触发。我看过Ngautomplete,但我想自己制作一个,这样它就可以完全满足我的需要,不多不少。如果删除文章
元素上的ng click=“focus()”
处理程序,这有帮助吗?不,删除ng click=“focus()”后没有区别。虽然这不是我面临的直接问题,不过,这确实让我找到了答案,所以非常感谢!问题是我让ng blur将下拉设置为hidden,这是在单击处理程序启动前几秒钟发生的。感谢您解决了我代码中的另一个bug,我下一步可能会遇到这个bug。
ng-click="addToSelectedTags(tag)"