2011-11-03 29 views
0

我正在用這個拉我的頭髮。我不確定發生了什麼事。我已經閱讀了關於映射的所有教程,但我明顯錯過了一些東西。我的對象有什麼問題(關於knockoutjs mapping插件)

{ 
     "address": "110", 
     "city": "Durham", 
     "id": 1, 
     "name": "Keep", 
     "persistent": true, 
     "salesRep": "Me", 
     "state": "NC", 
     "user": { 
      "email": "[email protected]", 
      "id": 4, 
      "name": "Test", 
      "password": "test", 
      "persistent": true 
     } 
    } 

我已經試過

ko.mapping.fromJSON(data); 

ko.mapping.fromJS(data); 

在我的舊代碼,我終於實現了這一點。

viewModel.customers(data); 

但我的JSON看起來不一樣。它沒有嵌套的對象,它的開始和結尾都有括號,使它成爲一個數組。看起來這將是非常基本的。我沒有得到任何錯誤。謝謝您的幫助。

編輯

http://jsfiddle.net/gjemN/

+0

您可以創建的jsfiddle到攝製的問題? –

+0

你的問題到底是什麼?什麼不是你認爲應該發生的事情? – rossipedia

+0

好男人添加了jsfiddle。 @BryanRoss:我只是試圖從JSON字符串中獲得映射。此時它不起作用。謝謝。 –

回答

3

在您的例子中,你正在處理一個JavaScript對象,而不是JSON(它的字符串表示)。

所以,你會想要調用ko.mapping.fromJS。如果您在找回客戶的數組,那麼你可以做:

ko.mapping.fromJS(data2, null, viewModel.customers)

是這樣的:http://jsfiddle.net/rniemeyer/BQe2z/

+0

我會用這個去的。我覺得自己像個白癡。我的JSON是用Java創建的。愚蠢的是,我沒有將Java List映射到Json數組,我正在映射一個對象。所以我只是一個對象而不是數組。這就是爲什麼它不起作用。 DERP。大聲笑。 –

+0

嗨@RP,「null」參數是什麼? –