0

我有一個Backbone集合的視圖。當我通過backbone.signalR集線器重置集合時,我希望獲得一個新的集合,我通過集線器傳遞它,但它只是重置集合,然後就像調用collection.add那樣傳遞給它的任何東西。所以我在我的集​​閤中獲得了12個屬性,其中前6個爲空值,後6個爲當前值。爲什麼collection.reset像collection.add一樣工作?

我的集合包含具有6個屬性的模型。我想用新的6值重置它們的值。但我無法通過collection.reset()

之前重置我的收藏我有一個對象包括以下6個屬性:

customerId: 2, 
    expectedTimeOfService: "10 min", 
    id: 6, 
    noOfWaiting: 13, 
    queueName: "Cash Deposit", 
    smsCode: "1234", 

重置我的收藏我得到一個對象後包含以下12個屬性:

CustomerId: null, 
    ExpectedTimeOfService: null, 
    Id: null, 
    NoOfWaiting: null, 
    QueueName: null, 
    SmsCode: null, 
    customerId: 2, 
    expectedTimeOfService: "10 min", 
    id: 6, 
    noOfWaiting: 13, 
    queueName: "Cash Deposit", 
    smsCode: "1234", 

所以,我不能讓有什麼問題,或者我該如何解決這個問題。所有我想要收集重置後我的6屬性值更新值。

回答

1

JavaScript區分大小寫,因此CustomerIdcustomerId不一樣。當Backbone更新模型時,它找不到匹配的屬性,因此它創建一個新的。

您應該在源位置修復問題並將服務返回的JSON密鑰更改爲lowerCamelCase。正在重置時

​​

而且通過選項parse:true

如果您不能出於某種原因更改了服務的響應,你可以在Model.parse亂砍轉換

collection.reset(data, {parse:true}); 
+0

非常感謝@ fencliff。雖然這是一個簡單的問題,但有時候很難解決這個簡單的問題。我剛剛解決了我的問題。再次感謝。 –

+0

@HannanHossain,不客氣。如果問題解決了,不要忘記將答案標記爲已接受。 – jevakallio

相關問題