在Angular.js中使用PHP JSON数组作为ng-option

时间:2014-08-22 23:24:10

标签: php json angularjs

我需要angular.js和php的帮助。我需要在我的角度视图中将选项显示为选择下拉列表但由于某种原因它只是不起作用。我想我的json数据的格式是问题所在。请帮忙。

JSON BELOW

{"states":{"1":"STATE 1","2":"STATE 2","3":"STATE 3"}}

以下角度控制器

.controller('StateListController', function($scope, $http) {
        $scope.selectedState = null;
        $scope.options = [];
    $http.get('http://localhost/listStates.json').then(function(resp) {
        $scope.options = resp.data;
        console.log(resp.data);
    }, function(err) {
        console.error('ERR', err);
        // err.status will contain the status code
    })
})

以下角色模板

<div class="list" ng-controller="StateListController">
  <label class="item item-input item-select">
      <div class="input-label">
          State
      </div>
      <select ng-model="selectedState" ng-options="state.id as state.name for state in options">

      </select>
  </label>
</div>

1 个答案:

答案 0 :(得分:0)

错误是您获得resp.data而不是resp.states。另外,这是不对的:

state.id as state.name for state in options

因为json 中的返回数据不是,如:

{"states":[{"id":"1", "name":"State 1"}, {"id":"2", "name":"State 2"}, {"id":"3", "name":"State 3"}]}

您需要放置的是绑定:

k as v for (k, v) in options

这是迭代对象属性的方法。