获得角度ng-option中的选定值

时间:2014-05-16 03:50:49

标签: javascript angularjs

我有一个像贝娄这样的对象:

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

如何获得第一个选定值并将其解析到控制器?

2 个答案:

答案 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 几次并进行实验,那么这一切都有意义。

Working Fiddle

答案 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);
    }
}