2016-09-29 12 views
0

角度選択要素で「トラック単位」を使用するように「選択」するのは難しいです。私が選択し、以下の持っている:これはJSと角度選択「トラック単位」のリセットが選択されました

<select id="licenseType" ng-model="selectedLicense" 
      ng-options="key for (key, value) in licenseMap track by key" 
      ng-change="doUpdate()"> 
    </select> 

:私は「キーでトラック」を取り除くとき

$scope.selectedLicense = $scope.licenseMap["Please Select"]; 

上記JSの作品 - 最初の選択は、プリセットますが。 「キーによるトラック」を適所に置くと、事前選択は空白になります。選択した価値を得るためには、「キーでトラックする」必要がありますが、それはこれまでに働いた唯一のものです。私はこれまでに以下の組み合わせを試してみましたが、動作しませんでした。

/* 
var license = document.getElementById('licenseType'); 
license.options.selectedIndex = 1; 
license.options[license.options.selectedIndex].selected = true; 
$("#licenseType").val("Please Select"); 
$('#licenseType').children('option[value="1"]').attr('selected', true);  
*/ 

私はここで働くように助けてくれてありがとう。ありがとうございました。

+0

どうしてあなたが追跡する必要がありますか? doUpdate()では、selectedLicenseにアクセスしてそこで選択した値を取得できるはずです。 – Dylan

+0

@ user2917629:私の選択は多目的な配列であり、選択されたキーを保持する唯一のトリックはtrack-byです。そうでなければ配列を返します – user2917629

答えて

2

はこのような何かを:http://codepen.io/alex06/pen/XjarJd

div(data-ng-app="app") 
div(ng-controller="appController") 
    select.form-control(ng-model="selectedItem", ng-options="option.value as option.name for option in typeOptions track by option.value" ng-init="selectedItem=typeOptions[0]") 


(function(){ 
    'use strict' 
    angular 
    .module('app', []) 
    .controller('appController', ['$scope', function($scope){ 

     $scope.typeOptions = [ 
     { name: 'Feature', value: 'feature' }, 
     { name: 'Bug', value: 'bug' }, 
     { name: 'Enhancement', value: 'enhancement' } 
     ]; 
    }]) 
})() 

例はヒスイで作られていますが、まだ代わりにあなたがすることもでき、配列のオブジェクトで作業したい場合には、道ほぼ同じsyntax.Byをですさこれを行う:

<!DOCTYPE html> 
<html ng-app="app"> 

<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js">    </script> 
    <link rel="stylesheet" href="style.css" /> 
    <script type="text/javascript"> 
    angular.module('app', []) 
     .controller('IndexCtrl', ['$scope', function($scope) { 
     $scope.types = { 
      1: "value1", 
      2: "value2", 
      5: "value3" 
     }; 
     }]); 
    </script> 
    </head> 
    <body ng-app="app" ng-controller="IndexCtrl"> 
    <select ng-model="type" ng-options="k as v for (k, v) in types"> 
     <option value="">Please select</option> 
    </select> 
    </body> 

</html> 
+0

ng-init = "selectedItem = typeOptions [0]"私自身のデータ参照が、まだ運がない。 – user2917629

+0

アップロードした例は配列を使用していることに注意してください。私は普通のオブジェクトを使用していると思います。だから私は配列を使ってペンをアップロードし、次にオブジェクトを持って別のペンをアップロードしました。値のないデフォルトオプションを選択するだけなら、私の2番目の例を使用してください。 – AlexP

+0

を選択してみましたが、あらかじめ選択していないので、多次元配列を扱っているので推測しています。 – user2917629

関連する問題