3

基本的に、私はあなたが持っているリンゴの総数を入力できる入力コントロール要素を持っています.リンゴの数に基づいて、あなたが作ることができるミニアップルパイの最大数を設定したいと思います.ミニアップルパイ)。Angularjs のドキュメントには ngOptions を使用するように記載されていますが、モデルではなくプリミティブ (リンゴの総数) に基づいて使用したいだけです。

したがって、totalApples の値が 2 の場合、2 つのオプションを生成する必要があります (一方の値は 1 で、もう一方の値は 2 です)。

これまでの私のコードは次のとおりです。

HTML スニペット:

<input ng-model="totalApples" />
<select ng-options="">
  <option value="1">1</option>  //what I would like to have is the options generated 
  <option value="2">2</option>
</select>

私のコントローラーでは、スコープを設定しました:

 $scope.totalApples = 2;

ありがとうございました

4

2 に答える 2

6

選択した値に興味がある場合は、ng-optionsディレクティブを と組み合わせて使用​​する必要がありますng-modelこの例を見てください。

また、オプション要素を調べたときに表示されるオプション値と混同しないでください。Angular は、正しい値がモデルにバインドされていることを確認します。

于 2013-04-29T17:33:49.633 に答える
3

カスタム関数でオプションの生成を処理する必要があります。AngularJS ディレクティブはデータを処理します。残りはあなた次第です。あなたの目標はそれを供給することです。

コントローラーで

$scope.options = [];
$scope.generateOptions = function() {
  newOptions = [];
  for (var i = 1; i <= $scope.totalApples; i++) {
    newOptions.push(i);
  }
  $scope.options = newOptions;
}

また、この単純なシナリオでは select ディレクティブが実際には必要ないため、HTML では単純にリピーターを使用できます。

<input ng-model="totalApples" />
<select>
  <option ng-repeat="option in options" value="{{option}}">{{option}}</option>
</select>
<button ng-click="generateOptions()">Generate options!</button>
于 2013-04-29T17:24:50.517 に答える