Angularjs Select 到 Select 数据传递
Angularjs Select to Select data passing
所以在 angularjs select 功能方面遇到了一些缺乏经验的问题。哈哈
所以我有一个车辆程序可以获取您的汽车信息。我有三个 select 选项。品牌、型号和年份。我从 JSON 服务器获取所有这些信息。 'Make' 输入显示所有汽车制造(每个 Make 对象都有一个模型对象)。 'Model' 输入显示用户选择的品牌的所有型号。我不知道如何获取 Make 的数据并显示该 Make 的所有模型。 (然后是年份)。
HTML
<label class="item item-input item-select">
<div class="input-label">
Make
</div>
<select ng-model="make" ng-options="item.name for item in items.makes">
</select>
</label>
JS
.controller('MilesCtrl', function($scope, vehicle, x2js, $http) {
/////////MY VEHICLE///////////
$scope.formData = {};
vehicle.getCar().then(function(data){
console.log(data.data);
$scope.items = data.data;
});
});
为了加载 selected 'make' 的模型,您必须将侦听器绑定到 select 元素中的更改事件,并在更改时加载。
例如:
HTML
<label class="item item-input item-select">
<div class="input-label">
Make
</div>
<select ng-model="make" ng-options="item.name for item in items.makes" ng-change="onMakeChanged">
</select>
</label>
JS
.controller('MilesCtrl', function($scope, vehicle, x2js, $http) {
function onMakeChanged(){
if ($scope.make){
$http.get('/get_models', { make: $scope.make.id})
.success(function(data, status, headers, config){
//render models
});
}
}
});
});
请看我的例子:http://jsfiddle.net/s7p0zavy/
假设我有 $scope.items 如下:
$scope.items = [
{
makes: [
{name: 'make01',
models: [
{name:'model0101', years:['111','112']},
{name:'model0102', years:['121', '122']}
]
},
{name: 'make02',
models:
[
{name:'model0201', years:['211','212']},
{name:'model0202', years:['221', '222']}
]
}
]
}
];
然后我可以显示如下信息:
<div class="input-label">Make</div>
<select ng-model="make" ng-options="item as item.name for item in items[0].makes"></select>
<div class="input-label">Model</div>
<select ng-model="model" ng-options="item as item.name for item in make.models"></select>
<div class="input-label">Year</div>
<select ng-model="year" ng-options="item for item in model.years"> </select>
所以在 angularjs select 功能方面遇到了一些缺乏经验的问题。哈哈 所以我有一个车辆程序可以获取您的汽车信息。我有三个 select 选项。品牌、型号和年份。我从 JSON 服务器获取所有这些信息。 'Make' 输入显示所有汽车制造(每个 Make 对象都有一个模型对象)。 'Model' 输入显示用户选择的品牌的所有型号。我不知道如何获取 Make 的数据并显示该 Make 的所有模型。 (然后是年份)。
HTML
<label class="item item-input item-select">
<div class="input-label">
Make
</div>
<select ng-model="make" ng-options="item.name for item in items.makes">
</select>
</label>
JS
.controller('MilesCtrl', function($scope, vehicle, x2js, $http) {
/////////MY VEHICLE///////////
$scope.formData = {};
vehicle.getCar().then(function(data){
console.log(data.data);
$scope.items = data.data;
});
});
为了加载 selected 'make' 的模型,您必须将侦听器绑定到 select 元素中的更改事件,并在更改时加载。
例如:
HTML
<label class="item item-input item-select">
<div class="input-label">
Make
</div>
<select ng-model="make" ng-options="item.name for item in items.makes" ng-change="onMakeChanged">
</select>
</label>
JS
.controller('MilesCtrl', function($scope, vehicle, x2js, $http) {
function onMakeChanged(){
if ($scope.make){
$http.get('/get_models', { make: $scope.make.id})
.success(function(data, status, headers, config){
//render models
});
}
}
});
});
请看我的例子:http://jsfiddle.net/s7p0zavy/
假设我有 $scope.items 如下:
$scope.items = [
{
makes: [
{name: 'make01',
models: [
{name:'model0101', years:['111','112']},
{name:'model0102', years:['121', '122']}
]
},
{name: 'make02',
models:
[
{name:'model0201', years:['211','212']},
{name:'model0202', years:['221', '222']}
]
}
]
}
];
然后我可以显示如下信息:
<div class="input-label">Make</div>
<select ng-model="make" ng-options="item as item.name for item in items[0].makes"></select>
<div class="input-label">Model</div>
<select ng-model="model" ng-options="item as item.name for item in make.models"></select>
<div class="input-label">Year</div>
<select ng-model="year" ng-options="item for item in model.years"> </select>