【问题标题】:Angular ng-if inside option element and ng-repeat not working选项元素内的角度 ng-if 和 ng-repeat 不起作用
【发布时间】:2014-07-08 11:29:53
【问题描述】:

我有一个应该列出可用货币的选择元素。默认货币名称前应有前缀“默认”。出于某种原因,该前缀显示在列表中的所有货币中。

测试 HTML:

<div ng-app="testApp">
  <div ng-controller="MainCtrl">
     <select>
        <option ng-repeat="rate in rates track by $index">
            <span ng-if="rate.is_default">Default</span>
            <span>{{rate.name}}</span>
        </option>
     </select>
  </div>
</div>

测试 JS:

var app = angular.module("testApp", []);

app.controller("MainCtrl", function($scope){

$scope.rates = [
    { 'name': 'dolar', 'is_default': true},
    { 'name': 'pound', 'is_default': false},
    { 'name': 'euro', 'is_default': false}
];

});

jsFiddle

【问题讨论】:

标签: angularjs angularjs-ng-repeat angular-ng-if


【解决方案1】:

你不能在选项标签中使用 HTML 标签,但你可以这样做:

<option ng-repeat="rate in rates track by $index">
    {{ rate.is_default ? 'default' : '' }} {{rate.name}}
</option>

Fiddle

【讨论】:

  • 是的,这就是我需要的!
  • 是否可以使用动态名称而不是像 {{rate.name}} 这样的“默认”名称?
  • 是的,这是可能的,它是一个角度表达,就像其他任何表达一样。所以你可以使用{{ rate.is_default ? rate.name : '' }}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多