Javascript 使用typeahead throws(str | |“quot;”)输入的引导标记。replace不是一个函数

Javascript 使用typeahead throws(str | |“quot;”)输入的引导标记。replace不是一个函数,javascript,flask,typeahead.js,bootstrap-tags-input,Javascript,Flask,Typeahead.js,Bootstrap Tags Input,在我的上一个问题中,typeahead.js可能已经更新了。上面有一些例子,所以根据我第一个问题和例子中的一些代码,我给出了下面的代码。 例如,当我键入s时,我会通过下拉菜单获得自动建议Sandra,但当我单击它时,每次都会出现此错误: uncaughttypeerror:(str | |“”)。替换不是一个函数 test.html <html lang="en"> <head> <meta charset="utf-8"/> <link r

在我的上一个问题中,typeahead.js可能已经更新了。上面有一些例子,所以根据我第一个问题和例子中的一些代码,我给出了下面的代码。 例如,当我键入
s
时,我会通过下拉菜单获得自动建议
Sandra
,但当我单击它时,每次都会出现此错误:
uncaughttypeerror:(str | |“”)。替换不是一个函数

test.html

<html lang="en">
<head>
    <meta charset="utf-8"/>
  <link rel="stylesheet" href="/static/bootstrap.min.css">
  <link rel="stylesheet" href="/static/bootstrap-theme.min.css">
  <link rel="stylesheet" href="/static/bootstrap-tagsinput.css">

</head>
<body>
    <input type="text" data-role="tagsinput" >

<script src="../static/jquery.min.js"></script>
<script src="../static/bootstrap.min.js"></script>
<script src="../static/typeahead.bundle.js"></script>
<script src="../static/bootstrap-tagsinput.js"></script>


<script>
var citynames = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  remote: {
      url: '/test/?query=*',
      wildcard: '*',
      filter: function(x) {
            return $.map(x, function(item) {
                console.log(item) //["Sandra"]
                return {name: item};
            });
        },
    },
});
citynames.initialize();

$('input').tagsinput({
  itemValue: 'name',
  typeaheadjs: {
    name: 'citynames',
    displayKey: 'name',
    source: citynames.ttAdapter()
  }
});
</script>

</body>
</html>

我通过这样做解决了我的问题:

var citynames = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  remote: {
      url: '/test/?query=*',
      wildcard: '*',
      filter: function(list) {
          var arr = list.options
          var test = []
          for (var i =0; i<arr.length; i++) {
            test.push(arr[i])
          }
          list = test
          return $.map(list, function(item) {
                console.log(item)
                return {name: item};
            });
        },
    },
});
citynames.initialize();
var citynames=新猎犬({
datumTokenizer:Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer:猎犬,标记,空白,
远程:{
url:“/test/?query=*”,
通配符:'*',
过滤器:函数(列表){
var arr=list.options
var测试=[]

对于(var i=0;ii),通过将加载顺序从:

angular.module('myapp', ['mgcrea.ngStrap','ui.bootstrap']).controller(...
致:


祝你好运!

那么你刚刚复制了数组???
angular.module('myapp', ['mgcrea.ngStrap','ui.bootstrap']).controller(...
angular.module('myapp', ['ui.bootstrap','mgcrea.ngStrap']).controller(...