0

嗨,我只是在学习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。我做错了什么?

4

0 回答 0