使用knockout和jquery ajax填充下拉列表

我正在使用像这样的ajax填充下拉列表。

var getCertifications = function () { $.getJSON("/Provider/GetCertifications", function (data) { $.each(data, function (i, item) { var certification_data = "" + item.Certification + ""; $(certification_data).appendTo("#certification"); }); }); }; 

在document.ready方法中调用getCertifications。 我想根据第一个下拉列表中所选选项的值填充第二个下拉列表。所以我写了另一个函数

  var getSpecializations = function () { var value = $("#certification").val(); $.getJSON("/Provider/GetSpecializations/", { certificationID: value }, function (data) { $.each(data, function (i, item) { var specialization_data = "" + item.Specialization + ""; $(specialization_data).appendTo("#specialization"); }); }); } 

html如图所示

  
Select a Certification
Select a Specialization

我的视图模型具有如图所示的可观察量

 self.certification = ko.observable(""); self.specialization = ko.observable(""); 

我在第一个下拉列表的subscribe方法中调用getSpecializations函数,就像这样

 self.certification.subscribe(function () { getSpecializations(); }); 

控制台没有错误,但第二次下拉即; 专业化下拉列表没有填充。你能不能指引我指向正确的方向。

那么你需要这样做

查看:

  

视图模型:

  var getSpecializations = function () { var value = self. $.getJSON("/Provider/GetSpecializations/", { certificationID: value }, function (data) { self.specializationArray(data) //array with Specialization and SpecializationId } 

在这里工作小提琴