我正在看这个plunkr,我简直不敢相信。您可以看到,如果数组中存在名称匹配搜索字符串的people人,则该人显示在下拉列表中,否则建议创建该(new)字符串指示的新人。但是它是如何决定显示什么元素的呢?似乎这两个有条件地显示/隐藏的 div 负责它,对吧?
<div ng-if="person.isTag" ng-bind-html="person.name +' <small>(new)</small>'| highlight: $select.search"></div>
<div ng-if="!person.isTag" ng-bind-html="person.name + person.isTag| highlight: $select.search"></div>
但是等等,这是什么?Person 对象没有 isTag 属性,或者是吗?demo.js我在里面看不到 这甚至是如何工作的?这面神秘isTag的旗帜是从哪里来的?拜托,我想我快疯了。
而且,为什么要person.name与布尔值(我假设它是布尔值)连接person.isTag?顺便说一下,这个例子是我在 angularjs select2 文档页面上找到的那个例子,我只是剥离了所有其他例子。
这是原始的plunker
