37

AngularJS を使用してオプション リストのテキスト値を取得しようとしています。

ここに私のコードスニペットがあります

<div class="container-fluid">
        Sort by:
        <select ng-model="productList">
            <option value="prod_1">Product 1</option>
            <option value="prod_2">Product 2</option>
        </select>
</div>

<p>Ordered by: {{productList}}</p>

{{productList}}オプションの値を返します。例: prod_1。テキスト値「製品 1」を取得しようとしています。これを行う方法はありますか?

4

4 に答える 4

63

最良の方法は、要素でng-optionsディレクティブを使用することです。select

コントローラ

function Ctrl($scope) {
  // sort options
  $scope.products = [{
    value: 'prod_1',
    label: 'Product 1'
  }, {
    value: 'prod_2',
    label: 'Product 2'
  }];   
}

HTML

<select ng-model="selected_product" 
        ng-options="product as product.label for product in products">           
</select>

productこれにより、選択したオブジェクトがng-modelプロパティ -にバインドされますselected_product。その後、これを使用できます:

<p>Ordered by: {{selected_product.label}}</p>

jsFiddle : http://jsfiddle.net/bmleite/2qfSB/

于 2013-01-27T22:42:58.767 に答える
10

select 要素の代わりにng-options="product as product.label for product in products">、これを使用することもできます。

<option ng-repeat="product in products" value="{{product.label}}">{{product.label}}

これもうまくいきます。

于 2013-11-25T23:15:53.440 に答える
1
<div ng-controller="ExampleController">
  <form name="myForm">
    <label for="repeatSelect"> Repeat select: </label>
    <select name="repeatSelect" id="repeatSelect" ng-model="data.model">
      <option ng-repeat="option in data.availableOptions" value="{{option.id}}">{{option.name}}</option>
    </select>
  </form>
  <hr>
  <tt>model = {{data.model}}</tt><br/>
</div>

AngularJS:

angular.module('ngrepeatSelect', [])
 .controller('ExampleController', ['$scope', function($scope) {
   $scope.data = {
    model: null,
    availableOptions: [
      {id: '1', name: 'Option A'},
      {id: '2', name: 'Option B'},
      {id: '3', name: 'Option C'}
    ]
   };
}]);

AngularJS ドキュメントから取得

于 2016-09-30T21:35:38.910 に答える