嗨,我只是在学习knockout.js 和基本上在客户端编程。我在服务器上使用web api 向客户端发送一些数据。这是来自服务器的模型:
public IEnumerable<POC_GetUpcomingLessons_Result> UpcomingLessons { get; set; }
public IEnumerable<POC_GetUpcomingExams_Result> UpcomingExams { get; set; }
public IEnumerable<POC_StudentTasks> ToDoList { get; set; }
现在我确信数据已经到达客户端,因为我尝试调试代码并返回一个包含所需数据的对象。这是我在客户端制作的代码:
var dashboardObservableCollection = ko.observableArray();
var isInitialized = false;
var vm = {
dashboard: dashboardObservableCollection,
//operations
refreshData: refreshData,
activate: activate
};
console.log("I got here");
return vm;
function activate() {
logger.log("Dashboard View Activated", null, 'dashboard', true);
if (!isInitialized) {
isInitialized = true;
...
return fetchModulesData();
}
}
function fetchModulesData() {
return dataService.getDashboard(1200528)
.then(fetchModulesCompleted)
.fail(fetchDataFailed);
function fetchModulesCompleted(data) {
dashboardObservableCollection(data.ToDoList);
debugger;
vm.dataLoading(false);
}
这里的数据取回了我选择暂时只获取 ToDoList 的所有三个 IEnumerables。
这是视图:
<ul class='to-do' data-bind="foreach: dashboard">
<!--ko compose: {view: 'dashboard/toDoList'} -->
<!--/ko-->
</ul>
<li>Fill in initial evaluation
<ul>
<li class="course icon" data-bind="text : ModuleName"></li>
<li class="courses icon">
<a href="#" data-bind="text : CourseName"></a>
</li>
<li class="teacher icon" data-bind="text: TeacherName"></li>
</ul>
我不确定我在哪里犯了错误,但是数据到达了客户端,我似乎无法让它显示在视图上。它甚至没有进入 foreach。我做错了什么?