使用AngularJs使用ajax和ng选项填充select
使用angularJS,我需要使用来自ajax调用的数据填充select 我有一个名为“tabpacproficationalcontroller”的控制器。在这个控制器中,我执行ajax调用来获取json数据(“proficationais对象”)。 到目前为止还不错 我的问题是,我得到了从服务器返回的json数据,但我的select永远不会填充 我错过了什么 我的回报是:使用AngularJs使用ajax和ng选项填充select,angularjs,json,ajax,Angularjs,Json,Ajax,使用angularJS,我需要使用来自ajax调用的数据填充select 我有一个名为“tabpacproficationalcontroller”的控制器。在这个控制器中,我执行ajax调用来获取json数据(“proficationais对象”)。 到目前为止还不错 我的问题是,我得到了从服务器返回的json数据,但我的select永远不会填充 我错过了什么 我的回报是: {"results":[{"nr":"8","nome":"AAAAAAAAAAAA"}, {"nr":"17","no
{"results":[{"nr":"8","nome":"AAAAAAAAAAAA"},
{"nr":"17","nome":"BBBBBBB"},
{"nr":"27","nome":"BBBBBAAAAA"},
,{"nr":"1004","nome":"CCCCCCCCC"}]}
HTML
如果希望标签显示
nome
属性,且值为nr
属性,请尝试以下操作:
<div class="form-group">
<label for="paciente.texto.sexo" class="col-sm-2 control-label">Profissional:</label>
<div class="col-sm-10" ng-controller="TabPacProfissionalController as tabProfCtrl">
<select ng-model="tabProfCtrl.selectedProf" ng-options="profissionais.nr as profissionais.nome for profissionais in tabProfCtrl.profissionais">
<option value="">Select</option>
</select>
</div>
</div>
专业人士:
挑选
(键,值)表示法用于对象数据源,就像您希望迭代单个对象的属性,而不是从$http
调用中获得的对象集合一样
要查看解析后的服务器响应,可以使用angular.fromJson(response.data)
这是一个演示功能的示例。对不起。它不起作用。我得到一个新错误:error:[ngOptions:iexp]预期表达式的形式为“select(as label)”?对于(键,)?_值uu在集合中,但在tabProfCtrl.profissionais中获得了“profissionais.nome for profissionais.nr”。元素:查看我的更新答案。我提供了一个显示功能的plunker。它不起作用。当我在chrome调试器网络工具中看到ajax数据返回时,我已经在上面发布了。但是,我的console.log(this.profissionais.toString())显示如下内容:[object object]、[object object]、[object object]、[object object object]、…..,每个对象都是{“nr”:“X”、“nome:”、“AAA”}。如果您想要查看对象的字符串格式,请尝试使用
JSON.stringify(response.data.results)
。我在plunker链接中添加了额外的显示和值选项。然而,我可能不再理解你的问题了。您尝试了ng选项
,如中所示,但没有显示任何内容?尝试angular.fromJSON()
。此外,在示例中,在{“nr”:“27”,“nome”:“bbbbb aaaaa”}
Addvar self=this之后可能会有一个额外的逗号代码>并在http成功函数中引用self
。谢谢,很好
app.controller('TabPacProfissionalController', function($http) {
this.profissionais = {};
$http.get('/getStaff?tipoProf=1').then(function(response){
this.profissionais=response.data.results;
console.log(this.profissionais.toString());
},function(error){
console.log(error);
});
});
<div class="form-group">
<label for="paciente.texto.sexo" class="col-sm-2 control-label">Profissional:</label>
<div class="col-sm-10" ng-controller="TabPacProfissionalController as tabProfCtrl">
<select ng-model="tabProfCtrl.selectedProf" ng-options="profissionais.nr as profissionais.nome for profissionais in tabProfCtrl.profissionais">
<option value="">Select</option>
</select>
</div>
</div>