ng-options で奇妙な問題に出くわしました。単純な選択を考えてみましょう:
<select ng-model="x" ng-options="n for n in [1,2,3]"></select>
モデル値はコントローラーで割り当てられます。
$scope.x = 3;
これは正常に機能します。select要素は3を示しています。ただし、割り当てが遅延している場合、
$timeout(function() { $scope.x = 3 }, 50);
選択は空白で表示されます。ただし、モデル値がリストの最後のオプションである場合のみ! 言い換えれば、これはうまくいきます:
$timeout(function() { $scope.x = 2 }, 50);
次に、select 要素は 2 を示します。1 と同じ扱いです。ただし、3 は空白で表示されます。
何?
これが示すプランクです。
angular 1.2.26 で発生する問題です。以前のバージョンは問題ありません (これは、plunk で使用される角度バージョンを変更することで確認できます)。
しかし、私のプロジェクトにはあらゆる種類の依存関係があり、bower は私の角度を 1.2.29 にプッシュし続けています。この問題を回避する方法を知っている人はいますか?