2012-01-03 57 views
1

我試圖建立一個JavaScript對象的Grails控制器綁定,這樣當數據綁定到一個新的對象在控制器中,相關的孩子在DB對象基於id字段拉動。這是記錄在這樣的春天數據綁定:子對象的數據

數據綁定和協會

如果你有一個一對一或多對一的一個關聯中,你可以使用 Grails的數據綁定能力也更新這些關係。對於 例如,如果你有一個進入的請求,如:

/book/save?author.id=20

Grails將自動檢測的要求 參數.ID後綴,並查找作者實例給定id做 數據綁定時,如:

高清b =新的圖書(PARAMS)

我要發佈一個JavaScript對象控制器與孩子道具完全由對象ERTIES。我如何設置javascript對象,以便控制器可以像下面的URL(與記錄相同)/book/save?author.id=20一樣查看對象的子屬性?

我都試過,但它似乎不工作:

var childObject= function(name, id) { 
       this.name = name; 
       this.id = id;  
      }; 

var viewModel = { 
    id: 1, 
    child: new childObject("Chuck",1) 
} 

控制器不看「child.id」當視圖模型發佈到控制器和自動獲取相關記錄。我完全脫離基地思考它是如何工作的?

也許是另一種方式來問我這是怎麼能夠序列化一個JavaScript對象,以便其字符串表示是「object.property」?

+0

您可以將您的域對象添加到您的代碼? 另外,你能在你正在控制器擊中封閉的開頭添加一個println(PARAMS),所以我們可以看到你傳遞什麼樣的數據中的Grails?這將有助於頗有幾分給你一個答案 – 2012-01-12 02:49:57

回答

0

創建JavaScript對象爲{孩子:{ID:1}}應該做你想要達到的目的。嘗試這樣的東西來創建所需的js對象

 var dataObj = {}; 
    var childObj = {}; 
    childObj['id'] = 1; 
    dataObj['child'] = childObj; 
    return dataObj; 
+0

Grails的控制器「看到」這個構造爲childObj [ID],而不是預期的childObj.id。這與我的例子有同樣的結果。 – BoxerBucks 2012-01-04 04:18:20