0

スコープのヘルプが必要です。以下は私のコードです(簡略化)。buildDropdownOptions 内の ajax 呼び出しの成功イベント内の関数内... (一口)。

buildDropdownOptions と同じレベルの設定オブジェクトに何かを設定しようとしていますが、アクセスできません (おそらく AJAX 呼び出しが原因ですか?)。

このことを機能させる方法を知っている人はいますか?

var settings = {},
buildDropdownOptions = function () {

                    var success = function (clinics, settings) {
                        var dropdownOptions = [];

                        $.each(clinics, function (i, clinic) {
                            dropdownOptions.push('<option value="' + clinic.ClinicId + '">' + clinic.Name + '</option>');
                        });

                        settings.dropdown.options = dropdownOptions;
                    };

                    $.ajax({
                        'url': settings.dropdown.source,
                        'success': function (clinics, settings) {
                            success(clinics);
                        }
                    });
                };
4

2 に答える 2

5

関数パラメーターとして含めることによりsettings、上位レベルのsettings変数を非表示にします。

実際、この場合は で隠していundefinedます。

引数リストに記載されているものを削除するsettingsと、正常に機能するはずです。

于 2013-01-25T20:56:14.437 に答える
2

settings.dropdown プロパティにアクセスできないようです。コードの最初の行を次のように変更してみてください。

var settings = {dropdown: {}}:
于 2013-01-25T20:55:43.793 に答える