我有一个基本表单,允许用户添加尽可能多的课程。每门课程都必须属于课程。我决定在knockout.js框架之上构建它。我已经能够对课程下拉菜单(self.curriculumList
)的值进行硬编码。但是我很难从mysql db中获取值来填充下拉菜单。我怎样才能做到这一点? JSFIDDLE
var initialData = [{
courseName: ""
}];/**/
var CourseModel = function (courses) {
var self = this;
self.courses = ko.observableArray(ko.utils.arrayMap(courses, function (course) {
return {
courseName: course.courseName,
selectedOptionValue : course.selectedOptionValue
};
}));
self.curriculumList = $.getJSON('functions/getCurriculum.php', function(data) {
data;
});
self.addCourse = function () {
self.courses.push({
courseName: "",
selectedOptionValue : ko.observable("Select One")
});
};
self.removeCourse = function (course) {
self.courses.remove(course);
};
self.save = function() {
self.lastSavedJson(JSON.stringify(ko.toJS(self.courses), null, 2));
};
self.lastSavedJson = ko.observable("");
};
ko.applyBindings(new CourseModel(initialData));
答案 0 :(得分:2)
ajax调用是异步的,您是否需要访问成功回调中的数据并将其分配给可观察数组...
self.curriculumList = ko.observableArray();
$.getJSON('functions/getCurriculum.php', function(data) {
self.curriculumList(data);
});