AngularJS 1.3 appでは、選択コントロールのモデルと可能な値をバックエンドから非同期的に取得するフォームがあります。 ng-options
で使用される値の前にモデル値を取得すると、選択コントロールでオプションが選択されません。選択の初期値はAngularJSで設定されていません
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, $timeout) {
$scope.model = { value: 101 };
$timeout(function() {
$scope.model.values = [100, 101, 102, 103];
}, 1000);
});
ビュー:私はこの現象を再現するために管理
Options: <select ng-model="model.value"
ng-options="v for v in model.values">
<option value="">Select some...</option>
</select>
タイムアウトモデルの後は、その古い値101を持っていますが、何のオプションが選択されていません。 現在、私は選択にng-if="model.values"
を使用して回避策を見つけるが、それを行うためのより良い方法があるはずだと感じている。
誰かがなぜオプションが選択されていないのか説明できますか?
Plunkr:http://plnkr.co/edit/4opZRJzdDfJhSNJx8RMF
編集:私はFirefoxでPlunkrを開いて、私は戻ってChromeに、その後、私の仕事を始め、それはそれはこのようになります
、これは1.3角度に特異的であるように見えます。このコードは1.2の角と現在のバージョン1.4.6で正しく動作します。 – Claies
私は確信していますが、この問題は特定のフレームワークのバージョンにのみ影響し、現行の安定版には存在しないため、これを再現できないと判断します。 – Claies