使用AngularJS动态设置选择选项

时间:2015-07-28 13:48:44

标签: html json angularjs

我正在尝试动态设置选择列表的选项,并且我仍然需要放在ng-options参数中,以使其按照我的意愿运行。

这是JSON

{ 
   "131":"Activity A",
   "141":"Activity B",
   "143":"Activity C",
   "186":"Activity D",
   "187":"Activity E",
}

我的选择列表是......

 <select size="7" ng-model="selectedItems" ng-options="item.id as item.name for item in rlist">

我的app.js是......

    angular.module('qAssign', []).controller('qCtrl', function ($scope, $http) {
        $scope.selectedItems = null;
        $scope.rlist = [];

        $http({
            method: 'GET',
            url: 'pathtoJSON.php',
            data: { applicationId: 1 }
        }).success(function (result) {
            $scope.rlist = result;
        });

    });

呈现的内容是

<option value="">undefined</option>
<option value="">undefined</option>
<option value="">undefined</option>
<option value="">undefined</option>
<option value="">undefined</option>

但我想要的是

<option value="131">Activity A</option>
<option value="141">Activity B</option>
<option value="143">Activity C</option>
<option value="186">Activity D</option>
<option value="187">Activity E</option>

我知道我的ng-options不正确,我只是不知道它应该是什么。

感谢。

4 个答案:

答案 0 :(得分:1)

你正在以错误的方式选择。把它作为。

 angular.module('qAssign', []).controller('qCtrl', function ($scope, $http) {
        $scope.selectedItems = null;
        $scope.rlist = [];

        $http({
            method: 'GET',
            url: 'pathtoJSON.php',
            data: { applicationId: 1 }
        }).success(function (result) {
            $scope.rlist = result;
             $scope.selectedItems = result.131;
        });

    });

答案 1 :(得分:0)

它应该是对象数组

     [
      { id:"131", name:"Activity A"},
      { id:"132", name:"Activity B"},
      { id:"133", name:"Activity A"}
     ]

答案 2 :(得分:0)

尝试使用angular.copy

$http.get('pathtoJSON.php', {applicationId: 1})
    .success(function (result) {
        angular.copy(result, $scope.rlist);
    });

答案 3 :(得分:0)

确定您可以在服务器端执行此操作:

$arr_temp = array (131 => Activity A, 132 => Activity B);
$arr_json = array();

foreach ($arr_temp as $key => $val) {
 $arr_json[] = array('id' => $key, 'name' => $val);
}  

return json_encode($arr_json);