我有一个像贝娄这样的对象:
var data = {
BCS: ['a', 'b', 'c', 'd'],
HND: ['e', 'f', 'g', 'h'],
LMU: ['i', 'j', 'l', 'm']
};
而贝娄是我的掌控者
function getDivision($scope) {
$scope.divisions = data;
}
这是模型
<div ng-app>
<div ng-controller='getDivision'>
<select ng-model="key" ng-options="key for (key , val) in divisions" ng-change="update()"></select>
<select ng-model="divisionValues" ng-options="value for value in key"></select>
</div>
</div>
这是JsFiddle
如何获得第一个选定值并将其解析到控制器?
答案 0 :(得分:1)
您的表达式应如下所示:
<select ng-model="key"ng-options="key as key for (key, val) in divisions"
ng-change="update()"></select>
<select ng-model="divisionValues"
ng-options="value for value in divisions[key]"></select>
此组合允许您的用户从data
的键中进行选择,一旦他们这样做,第二个select
框将包含与关联值数组中相关联的四个字母。
这些表达一开始很难理解,但如果你阅读the docs 几次并进行实验,那么这一切都有意义。
答案 1 :(得分:0)
您必须将密钥传递给更新方法,例如ng-change="update(key)"
<强> Working Demo 强>
<强> HTML 强>
<div ng-app>
<div ng-controller='getDivision'>
<select ng-model="key" ng-options="key as key for (key, val) in divisions" ng-change="update(key)"></select>
<select ng-model="divisionValues" ng-options="value for value in divisions[key]"></select>
</div>
</div>
<强>脚本强>
var data = {
BCS: ['a', 'b', 'c', 'd'],
HND: ['e', 'f', 'g', 'h'],
LMU: ['i', 'j', 'l', 'm']
};
function getDivision($scope) {
$scope.divisions = data;
$scope.update = function (a) {
console.log(a);
}
}