2015-10-08 47 views
0

有一个选择,像这样,如果我:角NG-显示选择选项的子选项

<div class="form-group"> 
    <label for="beneSelect">Select your benefit</label> 
    <select class="form-control" id="beneSelect" > 
     <option ng-repeat="descr in claim.claimBenes" 
       data-ng-model="claimInfo.providerName">{{ descr.descr }}</option> 
    </select> 
</div> 

其下方,如果“DESCR”有有数据同级财产,ng-show的选择option,如何或者做到这一点的最佳方法是什么?

因此,举例来说,如果JSON数据我拉有9个不同的属性,并在最初的选择,我表示这样的:

"id": "%2fooTA9gmtHE8IJ13CdcAww%3d%3d", 
    "planTypeId": 1, 
    "benefitTypeId": 11, 
    "benefCode": "LHCFSA", 
    "descr": "Limited Health Care FSA (1/1/2015 - 12/31/2015)", 
    "askSecIns": false, 
    "askResidual": false, 
    "hasFunds": true, 
    "startDate": "2015-01-01T00:00:00", 
    "endDate": "2015-12-31T00:00:00", 
    "expenseTypes": [ 
    { 
     "id": 56, 
     "descr": "General Dental Care" 
    }, 
    { 
     "id": 52, 
     "descr": "General Vision Care" 
    }, 
    { 
     "id": 57, 
     "descr": "Orthodontia" 
    }, 
    { 
     "id": 58, 
     "descr": "Preventive Care" 
    } 
    ], 

如果expenseTypes“有”的数据,那么另一个选择会显示,否则,只有一个选择会显示。其实,我会用另一个<select>显示一个带有HTML的新的<div>

不确定在Angular中解决此问题的最佳方法。请用例子提出建议?

非常感谢。

回答

0

可以使用expenseTypes数组的长度为一个布尔

ng-if="claim.expenseTypes.length" 
+0

如果我一样的长度和叔他的费用类型是一个对象,如果对象> = 1,那么这个长度是多少?或者因为不是一个实际的布尔值,那么这个长度是多少? – Mark

+0

你显示为数组。通常最好保持类型一致或者设置为空。一个物体没有长度。你是否控制数据源api? – charlietfl

+0

是的,我可以访问API - 但它会有一些限制。你能代表你在这种情况下展示我吗?我的意思是,我必须说长度是一切还是保持原样? – Mark

0

我猜你正在寻找这....

也许它会帮助你的一些想法....

(function() { 
 
    'use strict'; 
 

 
    function InputController() { 
 
    var secondary = { 
 
     A: [1, 2, 3], 
 
     B: [3, 4, 5] 
 
     }, 
 
     vm = this; 
 

 
    vm.primary = ['A', 'B']; 
 
    vm.selectedPrimary = vm.primary[0]; 
 

 
    vm.onPrimaryChange = function() { 
 
     vm.secondary = secondary[vm.selectedPrimary]; 
 
    }; 
 
    } 
 

 
    angular.module('inputs', []) 
 
    .controller('InputCtrl', InputController); 
 

 
}());
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.12/angular.min.js"></script> 
 
<div class="container" ng-app="inputs" ng-controller="InputCtrl as ctrl"> 
 
    <div class="row"> 
 
    <div class="col-xs-6"> 
 
     <h3>Primary</h3> 
 
     <select class="form-control" ng-model="ctrl.selectedPrimary" ng-options="item for item in ctrl.primary" ng-change="ctrl.onPrimaryChange()"></select> 
 
    </div> 
 
    <div class="col-xs-6"> 
 
     <h3>Secondary</h3> 
 
     <select class="form-control" ng-model="ctrl.selectedSecondary" ng-options="item for item in ctrl.secondary"></select> 
 
    </div> 
 
    </div> 
 
</div>