私は、ユーザーが3つのオプションのいずれかを選択するドロップダウンを持っています。それらの選択に基づいて、コントローラ内でイベントオブジェクトの2つのプロパティの値を設定する関数が起動されます。角度オブジェクトの値に基づいたプリセットドロップダウン
これは、ドロップダウンです:
<select type="text" id="private_gallery" class="form-control" ng-model="gallerySetting" ng-options="setting for setting in gallery_settings" ng-change="setGalleryType(gallerySetting)">
</select>
これは、ドロップダウンを移入コントローラからのコードです:
$scope.gallery_settings = ['Public', 'Private', 'Hidden'];
パブリック、プライベートまたは非表示を選択した場合、それらはsetGalleryTypeに渡されこれは次のようになります。
$scope.setGalleryType = function (galleryType) {
switch (galleryType) {
case 'Public':
$scope.event.private_gallery = 0;
$scope.event.active = 1;
break;
case 'Private':
$scope.event.private_gallery = 1;
$scope.event.active = 1;
break;
case 'Hidden':
$scope.event.private_gallery = 0;
$scope.event.active = 0;
break;
}
};
これはすべてex pected。問題は、アプリケーションが再読み込みされるときです。 gallerySettingモデルはバックエンドに格納されていないため、ドロップダウンに正しいオプションが設定されなくなりました。これはユーザーにとって非常に混乱し、設定が適切に保存されなかったとみなされます。
何とかevent.private_gallery
とevent.active
の値に基づいてドロップダウンを設定する必要があります。私は以下のコードを試してみましたが、ドロップダウンはその後角度として認識された後には、スコープの問題と何が発生します。これを行うに基づいて、途中で
$scope.setGallerySetting = function() {
if ($scope.event.private_gallery == 0 && $scope.event.active == 1){
return 'Public';
} ...
};
$scope.gallerySetting = $scope.setGallerySetting();
任意の考え?