4
我使用的是jQuery 1.7.1,Underscore 1.3.1和Backbone 0.9.1。這是我的骨幹代碼,在全:Backbone.js - 無法獲取數據,或綁定到集合上的獲取事件?
$(function(){
window.Student = Backbone.Model.extend({
});
window.Students = Backbone.Collection.extend({
model: Student,
});
window.AllStudents = new Students();
AllStudents.url = "/init.json";
AllStudents.bind('reset', function() {
console.log('hello world');
});
AllStudents.fetch();
AllStudents.fetch({ url: "/init.json", success: function() {
console.log(AllStudents);
}, failure: function() {
console.log('failure');
}});
AllStudents.fetch({ url: "/init.json" }).complete(function() {
console.log(AllStudents);
});
});
只有一個控制檯聲明甚至出現在第三.fetch()
調用,然後它是一個空的對象。
我很困惑。我究竟做錯了什麼?我如何綁定到重置事件,並使用獲取的數據?
這是JSON文件:
[
{ text: "Amy", freq_2011: 5 },
{ text: "Angeline", freq_2011: 26 },
{ text: "Anna", freq_2011: 55 }
]
我已簽了JSON文件被當作application/JSON,我也可以看到,它是由XHR請求,三次被取出。
UPDATE:這是我的HTML,在全:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Test</title>
</head>
<body>
<div class="container"></div>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.1/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.1/backbone-min.js"></script>
<script src="/js/test.js"></script>
</body>
</html>
其他人是否能重現該問題?
您是否嘗試過在集合本身的定義裏面設置url參數? – 2012-02-25 21:15:40
是的,沒有幫助:(請別人嘗試一下代碼,看看他們是否可以重現這個問題? – Richard 2012-02-25 21:39:04
我通過在最後使用引導模型解決了這個問題:http://documentcloud.github.com/backbone/ #FAQ-bootstrap雖然我仍然完全不知道發生了什麼問題。 – Richard 2012-02-26 17:09:51