Angularjs 将ngShow包括在选择ngOptions中
我使用ng选项填充select。在该值中,它给出了一个addon_id(来自json数据),名称为addon_name。这使用以下代码工作:Angularjs 将ngShow包括在选择ngOptions中,angularjs,angularjs-scope,angularjs-ng-repeat,Angularjs,Angularjs Scope,Angularjs Ng Repeat,我使用ng选项填充select。在该值中,它给出了一个addon_id(来自json数据),名称为addon_name。这使用以下代码工作: <div ng-show="group.group_optiontype == 'single'"> <select ng-model="foo1" ng-options="singleAddon.addon_name for singleAddon in group.addon
<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>
选择某物{{singleAddon.addon\u price}
这行不通。。。。最好的方法是什么?您可以在自己的作用域中编写一个函数,如下所示
$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"
您也可以通过使用过滤器来实现这一点