在" ng-options"中编辑选定的选项文本。选择列表

时间:2016-12-29 09:38:02

标签: angularjs angularjs-directive angularjs-scope

我需要将文本"(Default)"添加到所选选项文本中。请帮帮我......

  

文字应为"签证1881(默认)"。

但它只显示"Visa 1881"。这是我的代码:

<select ng-options="item.brand + ' ' + item.last_digits for item in approvedinvoicesCtrl.current_job.cards" ng-model="approvedinvoicesCtrl.GetCard"></select>

var vmc = this;

vms.current_job = response.data.payment_info;

for (var i = 0; i < vmc.current_job.cards.length; i++){
    if (vmc.current_job.cards[i].is_default){
        vmc.GetCard = vmc.current_job.cards[i] + ' (Default)';
    }
}      

我得到的是this

我需要的是this

感谢。

2 个答案:

答案 0 :(得分:0)

尝试使用ng-init默认值初始化:

<select ng-init=" approvedinvoicesCtrl.GetCard = initialValue" 
        ng-model="approvedinvoicesCtrl.GetCard" 
        ng-options="item.brand + ' ' + item.last_digits for item in approvedinvoicesCtrl.current_job.cards">
</select>

已更新:

jsfiddle链接:

https://jsfiddle.net/avnesh2/g2j6863a/6/

按你的意愿工作。

希望这会奏效。

答案 1 :(得分:0)

在您的if()声明中,您将值分配给cards[i].is_default而不是评估。因此,不仅您的条件始终为truecards[i].is_default值也将为(String) "true"

if (this.current_job.cards[i].is_default = 'true') 

// Should be 

if (this.current_job.cards[i].is_default == 'true') 

您应该使用==代替=

您希望option文字为Visa 1881 (Default)而不是Visa 1881吗?

在这种情况下,您只需在值中添加一个字符串:

 this.GetCard = this.current_job.cards[i] + ' (Default)';