Javascript AngularJS:TypeError:Object#<;对象>;没有方法';更换';
我的问题是: 我使用Angular和我试图实现ngTagsInput指令。我面临的问题是使用此控制器尝试从服务检索结果: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='
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>