2012-03-09 78 views
2

我試圖使自己的模型,我不知道如何:如何在Qooxdoo中創建自定義模型? (對於列表)

我一直期待在這裏http://demo.qooxdoo.org/current/demobrowser/index.html?qxenv:demobrowser.withTests:true#data~ListControllerWithObjects.html

,但我只能看到:

var person = new demobrowser.demo.data.model.Person(); 

但不顯示它來自何處或如何製作。所以這個教程是沒用的。

爲什麼我想要一個自定義模型? (我想有自定義類只是示範,要知道結構,並把自定義的方法吧)

我:[{a: 2, b: 4}, {a: 1, b: 9}];

而且我希望把它放在名單上,但使用:

var model = this._model = new qx.data.Array([{id: 1, name: "Victor"}]);  
this._listController = new qx.data.controller.List(model, this._list, 'name'); 

不起作用:真正的錯誤是SingleValueBinding:

"Binding property " + propertyname + " of object " + source + " not possible: No event available. ";

它無法找到該事件。

在控制檯中的錯誤:

Uncaught qx.core.AssertionError: error

+1

交叉後從郵件的Qooxdoo名單,HTTP://的Qooxdoo .678.n2.nabble.com/How-to-create-my-own-model-I-can-find -tp7357709p7357709.html – ThomasH 2012-03-10 00:01:31

回答

1

答案實際的問題是在這裏:

​​

+0

謝謝...我無法確認它的工作原理,因爲我要離開qooxdoo,但我會接受因爲這是我當時想要的。 – 2013-07-15 08:21:06

4

使用qx.data.marshal.Json.createModel

- >您的代碼應該是這樣的:

var model = this._model = qx.data.marshal.Json.createModel([{id: 1, name: "Victor"}]);  
this._listController = new qx.data.controller.List(model, this._list, 'name'); 

- >映射兩個模型單元相同的屬性( 「a」和「secondA」):

var data = [{a: 2, b: 4}, {secondA: 1, b: 9}]; 
var delegate = { 
    getPropertyMapping : function(property, properties) { 
     if (property === "secondA") { 
      return "a"; 
     } 

     return property; 
    } 
}; 

var marshaler = new qx.data.marshal.Json(delegate); 
marshaler.toClass(data); 
var model = marshaler.toModel(data); 

this.assertEquals("2", model.toArray()[0].getA()); 
this.assertEquals("1", model.toArray()[1].getA()); 

採取在外觀at my Playground examplethe unit test of the JSON marshaler(搜索 「testGetPropertyMapping」)

+1

我不明白qooxdoo是如何根據您給出的模型將名稱歸於模型的在這個例子中。如果我有兩個模型具有相同的數據但名稱不同?它如何映射它們?奇怪,但感謝您的回答 – 2012-05-25 10:51:17

+1

模型的名稱基於模型鍵的哈希。您可以使用http://demo.qooxdoo.org/current/apiviewer/#qx.data.marshal.IMarshalerDelegate根據給定屬性(IMarshalerDelegate#getModelClass())設置顯式模型類。 – 2012-05-25 12:30:57

+0

你能給我一個如何真正做的例子,從api我無法弄清楚如何..謝謝;) – 2012-07-16 08:01:21

相關問題