2015-02-09 55 views
0

是否可以將自定義字段添加到檢索到客戶端的微風實體對象並在保存更改之前將其刪除?我需要在一個網格中顯示一個實體對象列表(Student),並根據他的平均網格自定義字段[Rating]。我在客戶端計算的評級。將自定義屬性添加到客戶端的微風實體

更新: 我試圖通過覆蓋實體構造如下:

function overrideStudentEntity(metadataStore) { 
     metadataStore.registerEntityTypeCtor('Student', Student); 
     function Student() { 
      this.rating = 0; 
     } 
    } 

回答

0

是的,你可以在客戶端實體

我從firstName和的lastName的添加全名添加自定義字段學生對象

var myQuery = breeze.EntityQuery.from('Student');

返回manager.executeQuery(更改爲MyQuery)。然後(函數(studentData){ studentData.results.fullName = ko.observable(); studentData.results.fullName(studentData.results.FirstName()+」「+ studentData.results.LastName()) })

現在,無論您何時啓用manager.savechanges()方法,它都會自動保存學生對象。

+0

這裏的問題是,如果我在結果中有一個對象列表,我必須迭代並添加cust om字段到每個對象的權利?無論如何,我可以重寫實體構造函數並執行此操作嗎?我試着用metadataStore.registerEntityTypeCtor和它給我錯誤。 – devC 2015-02-09 12:43:21

+2

'registerEntityTypeCtor'是正確的方法。你是否正在遵循[documentation](http://www.getbreezenow.com/documentation/extending-entities)?你得到什麼錯誤? – 2015-02-09 18:03:00

+0

看起來像施工後初始化器是添加計算或ko.computed評級的地方。 – pawel 2015-02-10 11:13:47

0

嘗試重寫默認JSON適配器,就像從GitHub中沒有服務器實例 「茲」 的例子:

https://github.com/Breeze/breeze.js.samples/blob/master/no-server/edmunds/app/jsonResultsAdapter.js

http://www.breezejs.com/sites/all/apidocs/classes/JsonResultsAdapter.html

app.value('jsonResultsAdapter', 
 
     new breeze.JsonResultsAdapter({ 
 
     name: "edmunds", 
 
     extractResults: function(data) { 
 
      console.log(data); 
 
      var results = data.results; 
 
      if (!results) throw new Error("Unable to resolve 'results' property"); 
 
      return results && (results.operation.details); 
 
     }, 
 

 
     visitNode: function(node, parseContext, nodeContext) { 
 
      // Make parser 
 
      if (node.isoverdue) { 
 
      // move 'node.models' links so 'models' can be empty array 
 
      // node.modelLinks = node.models; 
 
      // node.models = []; 
 
      return { 
 
       entityType: "request" 
 
      } 
 
      } 
 

 
      // Model parser 
 
      else if (node.description) { 
 
      // move 'node.make' link so 'make' can be null reference 
 
      node.makeLink = node.make; 
 
      node.make = null; 
 

 
      // flatten styles and sizes as comma-separated strings 
 
      var styles = node.categories && node.categories["Vehicle Style"]; 
 
      node.vehicleStyles = styles && styles.join(", "); 
 
      var sizes = node.categories && node.categories["Vehicle Size"]; 
 
      node.vehicleSizes = sizes && sizes.join(", "); 
 

 
      return { 
 
       entityType: "requestDetails" 
 
      }; 
 
      } 
 
     } 
 

 
     }));

相關問題