使用AngularJs使用带有ng-options的ajax填充select

时间:2017-02-13 22:07:57

标签: angularjs json ajax

使用angularJS,我需要使用来自ajax调用的数据填充选择。

我有一个名为" TabPacProfissionalController"的控制器。在这个控制器中,我做了一个ajax调用来获取json数据(' profissionais对象')。 到目前为止一切都很好。

我的问题是我从服务器返回json数据,但我的选择永远不会填充。

我在这里缺少什么?

我的ajax回归是:

{"results":[{"nr":"8","nome":"AAAAAAAAAAAA"},
{"nr":"17","nome":"BBBBBBB"},
{"nr":"27","nome":"BBBBBAAAAA"},
,{"nr":"1004","nome":"CCCCCCCCC"}]}

HTML

        <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 class="form-control" ng-model="selectedProf" ng-options="nome for (nr,nome) in tabProfCtrl.profissionais">
                  <option value=''>Select an option</option>
                </select>
             </div>
        </div>

JS:

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);
        });
      });

1 个答案:

答案 0 :(得分:1)

如果您希望标签显示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>
您正在使用的

(键,值)表示法用于对象数据源,如果您想迭代单个对象的属性,而不是您似乎从{获取的对象集合{1}}致电。

要查看已解析的服务器响应,您可以使用$http

这是展示功能的plunker