2012-07-17 97 views
0

我第一次使用骨幹網,並且我非常努力地使它與JSON數據文件正常工作。骨幹模型通過ID獲取JSON元素

我有一個模型,如下所示:

window.Test = Backbone.Model.extend({ 

defaults: { 
    id: null, 
    name: null, 
}, 

url: function() { 
    return 'json/test.json/this.id'; 
    }, 

initialize: function(){ 

} 
}); 

當一個測試項目被點擊,然後我試圖打開被點擊做

testDetails: function (id) { 


    var test = new Test(); 
    test.id = id; 
    test.fetch({ success: function(data) { alert(JSON.stringify(data))}}); 
}, 

然而,這是太平洋模型的細節不起作用,我無法正確地說「使用通過的ID獲取JSON元素」

任何人都可以請示範我如何正確地構造模型URL以將元素與I D.

謝謝

回答

0

你的URL不正確的一個。你正在返回字符串'this.id'。你可能希望通過固定的url功能做一些沿

url: function() { 
    return 'json/test.json/' + this.id; 
} 
+0

在Backbone中,您使用'.get()'方法來訪問模型屬性。 'this.id'將返回'undefined' – jackwanders 2012-07-17 13:40:29

+0

嗨,謝謝,我已經改變了它,但是我得到了錯誤GET http://localhost/backbone/json/test.json/2 404(未找到) – 2012-07-17 13:44:55

+0

我該如何告訴它會得到一個ID爲 – 2012-07-17 13:46:33

0

我將開始行更多:

url: function() { 
    return 'json/test.json/' + this.get('id'); 
} 

你擁有了它,現在,每讀取請求的方式,不管模型的id的,是要/json/test.json/test.id

+0

嗨,謝謝,我現在改了它,但是我得到了錯誤GET localhost/backbone/json/test.json/2 404(Not Found) – 2012-07-17 13:45:34

+0

在這種情況下,最有可能是服務器上的路由問題, url'仍然不正確。如果不知道更多關於如何設置後端,我無法提供幫助 – jackwanders 2012-07-17 14:25:57

1

這裏的問題是,你對待你的JSON數據文件就像對服務器的調用一樣。這是行不通的,這也是你得到404的原因。如果你在本地訪問文件,你必須先加載文件。您可以使用.getJSON()方法使用jQuery來完成此操作,或者如果文件是靜態的,只需使用腳本塊將其加載到內存中(儘管您可能需要在文件中指定一個var)。很可能你會使用jQuery。這方面的一個例子可以在這裏找到:

Using Jquery to get JSON objects from local file

如果這是一個JSON數組,可以將數組加載到一個集合中,並使用「at」方法通過id訪問特定的元素。如果完全是JSON,則必須創建一個自定義分析器。