2015-04-25 29 views
0

我有一個應該有條件填充的選擇列表。在Angular中有條件地填充選擇列表

這裏是condtion:
函數獲取數據

function getDocumentTypeList() { 

     BaseInfoService.getDocumentTypeList().then(function (data) { 
      $scope.documentTypeList = data; 
      $scope.requestAuthorization.DocumentType = 0 
      $scope.conditionalLabel(); 
      debugger; 
     }); 

    } 
//////////////////////////// 
    function getSpecialList() { 

     BaseInfoService.getSpecialList().then(function (data) { 
      $scope.specialList = data; 
      debugger; 
     }); 

    } 

有定義哪一個應該顯示選擇列表。

如果值=== 1ng的選項從people
填充如果值=== 2納克選項從person
[Fiddle]1

由於填充

+0

什麼是 「價值」?它在哪裏定義? – mrak

+0

哪個'價值'? –

+0

還有另一個有2個值的選擇列表,0和1 – sani

回答

1

假設:兩者的形狀列表是相似的。

您可以有一個作用域函數作爲源,並在該函數中執行if或switch語句來找出要使用的源。

事情是這樣的:

(function() { 
 
    'use strict'; 
 
    
 
    angular.module('myApp', []); 
 
    
 
    angular.module('myApp') 
 
    .controller('myCtrl', myCtrl); 
 
    
 
    myCtrl.$inject = ['$log']; 
 
    function myCtrl($log) { 
 
    var self = this; 
 
    
 
    var ducks = [ 
 
     { name: 'Donald' }, 
 
     { name: 'Daisy' } 
 
    ]; 
 
    
 
    var mice = [ 
 
     { name: 'Mickey' }, 
 
     { name: 'Minnie' } 
 
    ]; 
 
    
 
    self.listType = 2; //change to 1 for ducks, 2 or anything else for mice 
 
    self.selectedThing = null; 
 
    
 
    self.getListOptions = function() { 
 
     switch(self.listType) { 
 
      case '1': return ducks; 
 
      case '2': 
 
      default: 
 
      return mice; 
 
     } 
 
    } 
 
    } 
 
}());
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl as vm"> 
 
    
 
    <label for="radType1"><input type="radio" name="radType" id="radType1" ng-model="vm.listType" value="1">Ducks</label> 
 
    <label for="radType2"><input type="radio" name="radType" id="radType2" ng-model="vm.listType" value="2">Mice</label> 
 
    
 
    <br> 
 
    <select ng-options="o.name for o in vm.getListOptions()" ng-model="vm.selectedThing"> 
 
    </select> 
 
</div>