我有两个选择,第二个内容必须取决于首先选择的选定值。例如。我想加载提供特定服务的公司列表(到第二<select>
)(在第一<select
&gt;中选择):
<div ng-controller="GetCompaniesByService as class">
<select ng-options="service.name for service in class.services" ng-model="selectedService"></select>
Chosen service_id: {{ selectedService.id }}
<select ng-options="company.name for company in class.companies" ng-model="selectedCompany"></select>
</div>
如何从模型中访问控制器当前selectedService.id值? Е.g我需要通过ajax动态加载数据,来自这样的网址
$http.get('http://127.0.0.1:3000/service/'+selectedService.id)
在第二个<select>
答案 0 :(得分:0)
您必须在控制器范围内查看selectedService。首先将selectedService的值初始化为&#34; false&#34;,然后当用户更改选项时,selectedService将获得select的值。
一旦selectedService的值变得与&#34; false&#34;显示第二个选择/选项。
你的HTML:
<div ng-controller="GetCompaniesByService as class">
<select ng-options="service as service.name in class.services" ng-model="selectedService"></select>
Chosen service_id: {{ selectedService.id }}
<select ng-options="company as company.name in class.companies" ng-model="selectedCompany" ng-show="selectedService"></select>
</div>
你的控制器:
app.controller('GetCompaniesByService',function($scope){
$scope.class = {}; //initialize the class object
$scope.class.services = [...]; //your first $http request
$scope.selectedService = false;
$scope.class.companies = function(){
if(selectedService){
return $http.get('http://127.0.0.1:3000/service/'+selectedService.id)
.success(function(data){return data;})
.error(function(error){return [];});
}
else{
return [];
}
};
});