angularui bootstrap typeahead- prepopulate下拉列表onfocus

时间:2015-05-13 17:13:31

标签: angularjs angular-ui-bootstrap angular-ui-typeahead

我正在为我的项目使用angularui bootstrap typeahead模块。

我无法使用预定义值预先填充下拉列表 每当用户点击typeahead的输入文本时,它应该自动显示typeahead建议下拉列表(来自静态JSON)。

每当用户开始输入时,行为应该是正常的。

我尝试了this解决方案,但不幸的是,当我将angularjs升级到版本1.3时它停止了工作

enter image description here

1 个答案:

答案 0 :(得分:0)

所以我基本上通过制作一个自定义指令并对ui bootstrap typeahead代码进行微小修改来实现这一点。你必须欺骗先行者,以为某人在其中输入了某些内容。我在场地的右侧放置了一个小的下拉箭头,所以基本上它看起来像一个下拉,点击该箭头将显示所有选择。你应该可以使用onfocus来做到这一点 基本上找到绑定到键事件的bootstrap typeahead中的代码,我更改它以检查40的keydown事件

           if(scope.matches.length === 0 && evt.which === 40) {  // Added            
         //   COMMENT OUT  modelCtrl.$setViewValue(modelCtrl.$viewValue);
                          modelCtrl.$setViewValue('');  // Added
            }

您还需要确保将typeaheadMinLength设置为0.请注意,在上面的代码中,它会检查用户没有键入任何内容以及我触发的特殊keydown事件的情况。你应该能够改变它以触发onfocus。我将bootstrap typeahead复制到mytypeahead.js然后如上所述修改它,以及你可能需要或不需要的一些其他小mod,取决于字段是否“必需”。