1

ここにフィドルがあります:http://jsfiddle.net/NFQFp/

HTML:

<body ng-app ng-controller="bodyCtrl">
<input autofocus="autofocus" ng-model="fname"/>
<select ng-model="state">
<option ng-repeat="st in states" value="{{st}}" ng-selected="state == st">{{st}}</option>
</select>
{{state}}
</body>

ジャバスクリプト:

function bodyCtrl($scope) {
    $scope.state = '';
    $scope.states =["AK","AL","AR","AS","AZ","CA","CO","CT","DC","DE","FL","GA","GU","HI","IA","ID","IL","IN","KS","KY","LA","MA","MD","ME","MH","MI","MN","MO","MS","MT","NC","ND","NE","NH","NJ","NM","NV","NY","OH","OK","OR","PA","PR","PW","RI","SC","SD","TN","TX","UT","VA","VI","VT","WA","WI","WV","WY"]
}

選択ボックスにタブで移動し、A を入力してから L を入力すると、モデルの値は AK のままになります。A の次に R または A の次に Z を入力すると、問題なく動作します。ここで何が起こっているのかわかりません。モデルを更新しない結果セットの 2 番目のようです。AL、CO、DE... などは期待どおりに機能しません。これは入力時にのみ問題になるようです。リストから項目を選択すると、モデルが期待どおりに更新されます。AL を選択してから AK を選択し、次に AL を入力すると、正常に更新されます。これは、ブラウザから発生しないイベントと関係がありますか? 選択をぼかすまでモデルを更新しないFirefoxとは異なり、入力時にモデルを更新するように見えるChromeを使用しています。

4

1 に答える 1

2

ng-repeatselect と一緒に使用しないでください。使用する:

<select ng-model="state" ng-options="st for st in states">

ドキュメントを参照してください。

AL を押すと AL になります (十分に速く押す必要があります)。フィドル: http://jsfiddle.net/XyaR9/

于 2013-09-16T17:02:47.020 に答える