Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在运行时选择下拉列表时动态填充下拉选项_Javascript_Angularjs_Json_Angularjs Ng Repeat_Html Select - Fatal编程技术网

Javascript 在运行时选择下拉列表时动态填充下拉选项

Javascript 在运行时选择下拉列表时动态填充下拉选项,javascript,angularjs,json,angularjs-ng-repeat,html-select,Javascript,Angularjs,Json,Angularjs Ng Repeat,Html Select,我有一个JSON对象,包含下拉列表的名称,看起来像这样- $scope.obj = { "dp1" :{}, "dp2" :{} } $scope.getData = function(category, type) { var params = { "dp1" : category, "dp1__type": type}; PromiseService.getPromiseData("GET", "/api/get_data/?" + $httpParamS

我有一个JSON对象,包含下拉列表的名称,看起来像这样-

$scope.obj = { 
    "dp1" :{},
    "dp2" :{}
}
$scope.getData = function(category, type) {
    var params = { "dp1" : category, "dp1__type": type};
    PromiseService.getPromiseData("GET", "/api/get_data/?" + $httpParamSerializer(params)).then(function(response) {
        $scope.obj.dp1= response;
    });
} 
对象
dp1
dp2
对应于相应的下拉列表。这些对象将通过下拉列表来填充其
选项
标记。

接下来我有一个REST调用函数,如下所示-

$scope.obj = { 
    "dp1" :{},
    "dp2" :{}
}
$scope.getData = function(category, type) {
    var params = { "dp1" : category, "dp1__type": type};
    PromiseService.getPromiseData("GET", "/api/get_data/?" + $httpParamSerializer(params)).then(function(response) {
        $scope.obj.dp1= response;
    });
} 
我能够将响应分配给
$scope.obj.dp1

响应对象如下所示-

{ "id" : 1, "name" : "john" }

最后,我的下拉列表如下所示-

<select id="d1" ng-model="d1">
    <option ng-repeat="opt in obj.dp1" t>{{opt.id}}_{{opt.name}}</option>
</select>

{{opt.id}}{{{opt.name}}
我想根据响应填充
obj
JSON对象,我可以这样做。然后我想转到
obj
中的子对象,并对其应用
ng repeat
,以填充
选项
标记

当前执行的
ng repeat
给了我
undefined undefined

试试这个-

$scope.obj = {

    "dropdown1" :{id:"dp2", data:"", options:[]},
    "dropdown2":{id:"dp1", data:"", options:[]}
}

$scope.getData = function(category, type){
           var params = { "dp1" : category, "dp1__type": type};
           PromiseService.getPromiseData("GET", "/api/get_data/?" + $httpParamSerializer(params)).then(function(response){
                    $scope.obj.dropdown1.options = response;
           });
       } 
html页面-

<div ng-repeat="dropdown in obj">
   <select id="{{dropdown.id}}" ng-model="dropdown.data" ng-options="option.name for option in dropdown.options">
</div>

使用ng option指令正是为了避免在此处使用ng repeat文档
{{opt.id}}{{{opt.name}