我使用ng-options填充选择。在值中,它给出了一个addon_id(来自json数据),名称是addon_name。但是我还有一个名为addon_priceoption的变量(可以免费&#39;付费&#39;)如果付费我想显示addon_price ...这可以使用以下代码:< / p>
<div ng-show="group.group_optiontype == 'single'">
<select ng-model="foo1" ng-options="singleAddon.addon_name as formattedLabel(singleAddon) for singleAddon in group.addons track by singleAddon.addon_id" name="addon-single" class="form-control-wrapper col-xs-12 col-sm-12 col-lg-12">
<option value="" ng-hide="foo1">Choose please </option>
</select>
</div>
//在控制器中
$scope.formattedLabel = function(singleAddon){
if(singleAddon.addon_priceoption =='paid'){
return singleAddon.addon_name + ' (+ €' + singleAddon.addon_price +' )';
}else{
return singleAddon.addon_name;
}
};
我得到一个包含所有选项的选择框。如果选择有价格,它也会显示价格。但由于某种原因,我现在无法选择一个选项。我可以点击它,但它不会改变它保持默认值。
当我这样做时:
singleAddon.addon_name for singleAddon in group.addons track by singleAddon.addon_id
在NG选项中,我可以选择选项..但是价格修改我无法选择?
为什么会这样?
答案 0 :(得分:0)
请注意您的代码
<select ng-model="foo1" ng-options="singleAddon.addon_name as formattedLabel(singleAddon) for singleAddon in group.addons track by singleAddon.addon_id" name="addon-single" class="form-control-wrapper col-xs-12 col-sm-12 col-lg-12">
<option value="" ng-hide="foo1">Choose please </option>
</select>
你正在做&#34; ng-options =&#39; singleAddon.addon_name&#39;&#34;并且您已经在您的formattedLabel函数中返回了名称,而不是对象本身。