1

次のコードで角度のある「選択」を読み込もうとしています

<select class="span11" ng-model="user.countryOfResidence" ng-options="c.option as c.value for c in countries" required>

データを選択にロードしますが、デフォルトの選択値は空です。

私の国の配列は

$scope.countries = [{option:'TL', value:'TIMOR-LESTE'},
{option:'TK', value:'TOKELAU'},
{option:'TJ', value:'TAJIKISTAN'},
{option:'TH', value:'THAILAND'},
{option:'TG', value:'TOGO'},];

に変更'TL'すると'TIMOR-LESTE'、(「オプション」と「値」の同じ文字列)正常に動作します。私のコードの問題点を教えてください。

ユーザーオブジェクトは

$scope.user = {

        countryOfResidence : $scope.countries[0].value

    };
4

1 に答える 1

2

ng-options が設定された select は、 ng-model フィールドをオプションではなくvalueとして指定されたものに設定します

あなたが与えた例では、user.countryOfResidenceをcountries[0].valueに設定しています。この場合は「TIMOR-LESTE」ですが、値キーは「TL」であるため、選択されませんデフォルトで。

読みやすくするために、次のように「ラベル」キーと「値」キーを使用して選択オプションを構成するのが好きです。

// Controller

$scope.countries = [
  {value:'TL', label:'TIMOR-LESTE'},
  {value:'TK', label:'TOKELAU'},
  {value:'TJ', label:'TAJIKISTAN'},
  {value:'TH', label:'THAILAND'},
  {value:'TG', label:'TOGO'}
];

$scope.user = {
        countryOfResidence: $scope.countries[0].value
    };
};

// View

<select class="span11" ng-model="user.countryOfResidence" ng-options="c.value as c.label for c in countries" required=""></select>
于 2013-09-14T09:36:56.450 に答える