2017-08-24 55 views
0

我是Oracle Jet中的新成员。我想要实现的是在Oracle Jet Table中使用Rest Rest Webservices。在Oracle Jet中使用其他Web服务

这是我的ViewModel

function CustomerViewModel() { 
    var self = this; 

    self.DeptCol = ko.observable(); 
    self.datasource = ko.observable(); 

    self.serviceURL = '/hr/employees/'; 
    self.parseDept = function(response) { 
     return {empno: response['empno'], 
      DepartmentName: response['ename'], 
      LocationId: response['job'], 
      ManagerId: response['hiredate'], 
      mgr: response['mgr'], 
      sal: response['sal'], 
      comm: response['comm'], 
      deptno: response['deptno']}; 
    }; 
    self.Department = oj.Model.extend({ 
     urlRoot: self.serviceURL, 
     parse: self.parseDept, 
     idAttribute: 'empno' 
    }); 

    self.myDept = new self.Department(); 
    self.DeptCollection = oj.Collection.extend({ 
     url: self.serviceURL, 
     model: self.myDept 
    }); 

    self.DeptCol(new self.DeptCollection()); 
} 

这是我的看法

<table id="table" summary="Department List" aria-label="Departments Table" 
     data-bind="ojComponent:{ 
    component:'ojTable', 
    data:datasource, 
    columns:[ 
     { 
     headerText:'empno', 
     field:'empno' 
     }, 
     { 
     headerText:'ename', 
     field:'DepartmentName' 
     }, 
     { 
     headerText:'job', 
     field:'LocationId' 
     }, 
     { 
     headerText:'hiredate', 
     field:'ManagerId' 
     }, 
     { 
     headerText:'mgr', 
     field:'mgr' 
     }, 
     { 
     headerText:'sal', 
     field:'sal' 
     }, 
     { 
     headerText:'comm', 
     field:'comm' 
     }, 
     { 
     headerText:'deptno', 
     field:'deptno' 
     } 
    ] 
}"> 
</table> 

当我测试页面,它不显示任何错误和页面是空白。有人可以帮忙吗? 感谢

+0

有时会发生这种情况,因为数据解析不正确。你能否显示web服务响应? – Ray

+1

我不明白你如何把数据放入'datasource'中。一行可能会丢失, – Koshinae

+0

您的问题是否解决? – CodeWriter

回答

0

请检查下面的教程here。 它有两种情况:

  1. 标准jquery。
  2. Oracle Jet Common模型。

在您提供的示例中,您使用的是Oracle jet通用模型,该模型非常适用于Rest webservice上的CRUD操作。

我建议你也采取在标准的JQuery情况下,这是非常有用和易于使用的。

希望有所帮助。

0

在你的CustomerViewModel你可能错过在实际设置datasource观察到结束:

self.datasource(new oj.CollectionTableDataSource(self.DeptCol()));