Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:TypeError:Object#<;对象>;没有方法';更换';_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS:TypeError:Object#<;对象>;没有方法';更换';

Javascript AngularJS:TypeError:Object#<;对象>;没有方法';更换';,javascript,angularjs,Javascript,Angularjs,我的问题是: 我使用Angular和我试图实现ngTagsInput指令。我面临的问题是使用此控制器尝试从服务检索结果: dashboardApp.controller('TagsCtrl', function($scope, $http) { $scope.tags = []; $scope.loadTags = function(query) { $scope.results = $http.get( '/search/autocomplete?q='

我的问题是:

我使用Angular和我试图实现ngTagsInput指令。我面临的问题是使用此控制器尝试从服务检索结果:

dashboardApp.controller('TagsCtrl', function($scope, $http) {
      $scope.tags = [];
      $scope.loadTags = function(query) {
        $scope.results = $http.get( '/search/autocomplete?q=' + query); // also tried with $http(); same thing
        return $scope.results;
        console.log($scope.results);
      };
    });
在视图中,自动完成“有点有效”,它提供了一个包含大量[Object]的droplist。所以我想我很接近了,但是控制台抛出了这个错误(console.log($scope.results);):

TypeError:对象#没有方法“replace”
HTML部分,如果需要:

 <div class="modal-body" id="ng-tags-input-container" ng-controller="TagsCtrl">
                                <tags-input ng-model="tags">
                                  <auto-complete source="loadTags($query)"></auto-complete>
                                </tags-input>
                              </div>


我希望有人能帮上忙,这让我快疯了。

我和ngTagsInput的创建者Michael Benford谈过,他说ngTagsInput只能使用简单的数组,比如:['item'、'item'、'item'

在我的例子中,我有两种解决方案:

  • 创建另一个只返回作为数组所需字符串的服务
  • 我可以用JS将我的大json转换为一个简单的数组

希望它能帮助某人:)

尝试移动
console.log($scope.results)在return语句上方,并查看它所说的内容。正如预期的那样,它返回相同的错误:)显然您遗漏了一些代码。要么发布代码的其余部分,要么提供堆栈跟踪。没有对其中任何
replace
函数的调用。
tagsInput
autoComplete
做什么?有时我想知道,当提供的信息如此之少时,人们怎么能期望得到答案……我提供了这些信息:replace来自AngularJS(我猜),tagsInput和autocomplete来自ngTagsInput指令(我给出了项目的链接)。我不确定是否必须发布AngularJS源代码和ngTagsInput指令源代码?您确定ajax结果是字符串数组吗?自动完成显示[Object]让我觉得它们不是字符串。
 <div class="modal-body" id="ng-tags-input-container" ng-controller="TagsCtrl">
                                <tags-input ng-model="tags">
                                  <auto-complete source="loadTags($query)"></auto-complete>
                                </tags-input>
                              </div>