2014-09-06 63 views
0

我使用ng-options填充選擇。在它提供的addon_id值(來自json數據)和名稱是addon_name。這個工程使用下面的代碼:在select ngOptions中包含ngShow

   <div ng-show="group.group_optiontype == 'single'"> 
       <select ng-model="foo1" ng-options="singleAddon.addon_name for singleAddon in group.addons track by singleAddon.addon_id" name="addon-val-single" class="form-control-wrapper col-xs-12 col-sm-12 col-lg-12"> 
        <option value="" ng-hide="foo1">choose something</option> 
       </select> 
       </div> 

,但我也有一個變量,名爲addon_priceoption(至極可以「免費」或「支付」),如果它的有償我想顯示addon_price ......現在,我怎麼包括這個登錄到我的代碼?我嘗試過:

   <div ng-show="group.group_optiontype == 'single'"> 
       <select ng-model="foo1" ng-options="singleAddon.addon_name for singleAddon in group.addons track by singleAddon.addon_id" name="addon-val-single" class="form-control-wrapper col-xs-12 col-sm-12 col-lg-12"> 
        <option value="" ng-hide="foo1">choose something<span ng-show="singleAddon.addon_priceoption == 'paid'">{{singleAddon.addon_price}}</span></option> 
       </select> 
       </div> 

這不起作用....什麼是最好的方法來做到這一點?

回答

1

你可以在你的範圍寫一個函數像下面

$scope.formattedLabel = function(singleAddon){ 
    if(singleAddon.addon_proceoption =='paid'){ 
    return singleAddon.addon_name + singleAddon.addon_price; 
    }else{ 
    return singleAddon.addon_name; 
    } 
}; 

而變化NG-選項

ng-options="singleAddon.addon_name as formattedLabel(singleAddon) for singleAddon in group.addons track by singleAddon.addon_id" 

您還可以通過使用過濾器做到這一點。

+0

它的工作原理! ... 謝謝 – rZaaaa 2014-09-06 02:54:03