【发布时间】:2023-03-22 15:45:01
【问题描述】:
我正在尝试从 url 生成的 json 中检索用户列表。我正在尝试以这种方式调整Angular UI select : Fetch data from remote service 上建议的代码:
$scope.person = {};
$scope.people = {};
$http.get('https://sampleurl/pessoas/v1/?nome=' + item.name).then(
function (response) {
$scope.people = response.data;
console.log(response)
},
function () {
console.log('ERROR!!!');
}
);
但是,输入只是中断,我什至不能在上面输入任何内容:(
由于 json 包含个人数据,我不得不更改真实的 url。
更新 我从 url 中删除了 item.name 并强制为 name 设置一个值。现在我可以得到一些固定的结果,但我无法将它们添加到输入中:
$scope.person = {};
$scope.people = [];
//e lá vamos nós
$http.get('https://someurl/pessoas/v1/?nome=monteiro').then(
function (response) {
$scope.people = response.data;
console.log(response)
},
function () {
console.log('ERROR!!!');
}
);
当我选择某人时出现以下错误: 错误:[ngRepeat:dupes] 不允许在转发器中重复。使用“track by”表达式指定唯一键。中继器:$select.selected 中的 $item,重复键:未定义:未定义,重复值:未定义
更新 2:
通过定义对象的所有属性修复了最后一个错误:
$scope.tagTransform = function (newTag) {
var item = {
nome: newTag,
email: 'unknown',
cpf: 'unknown',
matricula: 'unknown',
lotacao: 'unknown'
};
return item;
};
现在我可以选择某人了,但是选择框里面什么都没有。另外,我仍然无法搜索字符串。我试过 https://sampleurl/pessoas/v1/?nome=' + item.name 和 https://sampleurl/pessoas/v1/?nome=' + $selected.search 但都没有成功。
【问题讨论】:
-
这个 response.data 是一个数组吗?
-
示例:[{"nome":"dude","matricula":"32107","cpf":"12345678901","email":"dude@SERPRO.GOV.BR", "lotacao":"SUPDE/DERJO/DE701","regional":"SERPRO - REGIONAL RIO DE JANEIRO"},{"nome":"girl","matricula":"46213","cpf":98765432101", "email":"girl@CENTROIN.COM.BR","lotacao":"OPRJO/OPSIN/OPESE","regional":"SERPRO - REGIONAL RIO DE JANEIRO"}];
-
注意“nome”,是“name”的拼写错误吗?我已编辑我的答案以使用“名称”
标签: javascript angularjs json ui-select