在AngularJS中使用JSON链接两个选择

时间:2015-10-22 23:59:45

标签: json angularjs ionic-framework

所以,我尝试了这个Link two select boxes using angular js,但不知道如何在我的情况下使用这个公式使用这个JSON:

{
    "option1": [{
        "countries": [
            {
                "currency": "ARS"   
            },
            {
                "currency": "USD"  
            }
        ]
    }],
    "option2": [{
        "countries": [
            {
                "currency": "EUR"   
            },
            {
                "currency": "GBP"  
            }
        ]
    }],
    "option3": [{
        "countries": [
            {
                "currency": "RU"   
            },
            {
                "currency": "TR"  
            }
        ]
    }]
}

第一个选择应该有option1,option2,option3。如果选择了option1,则第二个选择应具有ARS和USD。

这样做的正确方法是什么?

UPDATE1:我做了类似@Joaozito Polo回答的事情,但尝试在两个选项中使用ngModel设置默认值,当我更改第一个选择时,第二个变为空白。

UPDATE2:现在我得到它并且正在工作,buuuuuuut ....仅在the jsbin,我不明白为什么不能在我的真实代码中工作。当我这样做时:

<select ng-options="value as name for (name, value) in options" ng-model="currentOption" ng-change="showSomething()"></select>

并在ngChange中执行如下控制台日志:

$scope.showSomething = function() {
    console.log($scope.currentOption);
};

我总是得到相同的选项,但在jsbin中选项更改:/我正在使用ionic和cordova,也许是一个bug?

UPDATE3:找到this,工作完全正确。这是一个好的解决方案吗?为什么离子不起作用?我不想理解这种行为。

提前致谢

1 个答案:

答案 0 :(得分:1)

将您的数据模型视为变量“选项”......

您需要在ng-options上使用(键,值):

Option
<select ng-options="value as name for (name, value) in options" ng-model="currentOption"></select>

Currency
<select ng-options="item as item.currency for item in currentOption[0].countries" ng-model="currency"></select>

看看这个jsbin:jsbin