2015-10-08 46 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>