错误:promise未定义
Error: promise is undefined
我正在使用angularjs创建一个标记列表输入
当我在标记列表控件中键入超过3个字符时,浏览器控制台中会显示以下错误。
AngularJS v1.2.23
ngTagsInput v2.1.0
Error: promise is undefined
SuggestionList/self.load/debouncedLoadId
HTML:
<tags-input ng-model="tags" display-property="Tag_Title" placeholder="Add Tag">
<auto-complete source="loadItems($query)"></auto-complete>
</tags-input>
app.js:
$scope.loadTags = function(query) {
return $http.get('getTags?query=' + query).then(function (response) {
return response.data;
});
}
为什么会投这些反对票?错误很简单:loadTags()
必须返回promise,但您将返回$http
调用的结果数据。
所以你的loadTags()
函数应该是:
$scope.loadTags = function(query) {
return $http.get('getTags?query=' + query);
}
你必须确保后端提供这样的数据结构:
[
{text:'foo'},
{text:'foo2'},
{text:'foo3'}
]
如果您的后端提供了其他内容,则必须首先转换结果;请参阅此问题中的代码,了解如何做到这一点。如果你需要进一步的帮助,请回来找我。
错误已修复。在我的HTML代码中,函数名为"loadItems",但在app.js中,函数名称为"loadTags"
完整的解决方案是:
HTML
<tags-input ng-model="myTags" display-property="Tag_Title" placeholder="Add Tag">
<auto-complete source="loadTags($query)"></auto-complete>
</tags-input>
app.js
$scope.myTags = [];
$scope.loadTags = function(query) {
return $http.get('getTags?query=' + query)
.then(function (response) {
return response.data;
});
}
php
对于服务器端,我使用了Laravel框架
public function getTags()
{
$query = Input::get('query');
return Tag::where('Tag_Title', 'LIKE', $query.'%')->get();
}
相关文章:
- AngularJS和promise值在调用本地函数时的效果-未定义
- Angular promise return"未定义的“;值.NET MVC
- Ionic应用程序在部署后给出ReferenceError:未定义Promise
- 无法弄清楚为什么本机 Promise 变量未定义
- Chained Promise给出了未定义的函数错误,但我可以单独执行这些函数
- Promise 在 Javascript 中不起作用,返回未定义
- 使用 promise 时,“this”对象是未定义的
- 使用 Promise,收到错误“无法读取未定义的属性'then'”
- JavaScript 运行时错误:“Promise”未定义
- Promise.all 在完成之前返回一个未定义和解析的数组
- 模拟服务返回promise:无法读取未定义的属性
- Promise-TypeError:无法读取属性'那么'的未定义
- 为什么“;这个“;在具有http promise的typescript模块中未定义
- 错误:promise未定义
- 生成器在等待promise解析时返回未定义的值
- promise中未定义的值
- 为什么'new Promise(…)'返回& # 39;未定义# 39;
- Javascript - post PHP使用promise,得到未定义的结果
- 无法读取$promise的属性,然后未定义
- 类型错误:'未定义'不是对象(正在评估'promise.data.map')