2014-09-06 64 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