2012-08-04 89 views
0

我正在嘗試在Django中使用Backbone。backbone-tastypie:超出最大調用堆棧大小

我第一次參加骨幹的工作地方例如從todomvc: https://github.com/addyosmani/todomvc/tree/master/architecture-examples/backbone

我當時就想使用服務器而不是本地存儲。 所以我選擇了django-tastypie作爲REST API。 我在瀏覽器中使用REST客戶端(郵遞員)測試了REST API,它可以工作。

然後我想使它與todomvc示例一起工作。 我設置了一些東西來使用服務器而不是本地存儲。 我得到了大家推薦的小轉換層backbone-tastypie.js。 (https://github.com/PaulUithol/backbone-tastypie/blob/master/backbone_tastypie/static/js/backbone-tastypie.js)

不過,我得到一個的RangeError:最大調用堆棧大小超過時當我使用backbone-tastypie.js圖層時,我在我的集​​合上使用了獲取方法。

有什麼想法?在錯誤

更多細節:

a = window.App 
a.Todos.fetch() 
RangeError: Maximum call stack size exceeded 
arguments: Array[0] 
length: 0 
__proto__: Array[0] 
concat: function concat() { [native code] } 
constructor: function Array() { [native code] } 
every: function every() { [native code] } 
filter: function filter() { [native code] } 
forEach: function forEach() { [native code] } 
indexOf: function indexOf() { [native code] } 
join: function join() { [native code] } 
lastIndexOf: function lastIndexOf() { [native code] } 
length: 0 
map: function map() { [native code] } 
pop: function pop() { [native code] } 
push: function push() { [native code] } 
reduce: function reduce() { [native code] } 
reduceRight: function reduceRight() { [native code] } 
reverse: function reverse() { [native code] } 
shift: function shift() { [native code] } 
slice: function slice() { [native code] } 
some: function some() { [native code] } 
sort: function sort() { [native code] } 
splice: function splice() { [native code] } 
toLocaleString: function toLocaleString() { [native code] } 
toString: function toString() { [native code] } 
unshift: function unshift() { [native code] } 
__proto__: Object 
get message: function() { [native code] } 
arguments: null 
caller: null 
length: 0 
name: "" 
prototype: Object 
__proto__: function Empty() {} 
set message: function() { [native code] } 
arguments: null 
caller: null 
length: 1 
name: "" 
prototype: Object 
__proto__: function Empty() {} 
stack: undefined 
type: "stack_overflow" 
__proto__: Error 
arguments: undefined 
constructor: function RangeError() { [native code] } 
name: "RangeError" 
stack: undefined 
type: undefined 
__proto__: SetUpError.d 
+0

什麼是你的代碼是什麼樣子?可能有一個隱藏在某處的無限循環。 – 2012-08-04 16:42:44

+0

穆可能是對的。根據我對tastypie的(有限)經驗,最大調用棧的大小超出了無限循環的結果 - 通常這會在你的tastypie代碼中填充嵌入式資源。 – bento 2012-08-06 17:31:52

+0

對於遲到的回覆,我再也無法訪問互聯網了。我實際上正在嘗試調整todomvc的骨幹示例以使用服務器而不是本地存儲:https://github.com/addyosmani/todomvc/tree/master/architecture-examples/backbone – Michael 2012-08-15 20:26:52

回答

0

在你的資源,你有這樣的:

class MyResource1(ModelResource): 
    attr1 = fields.ForeignKey('app.api.MyResource2', 'attr1', full=True) 

    class Meta: 
     queryset = bla bla 
     . 
     . 
     . 

class MyResource2(ModelResource): 
     attr2 = fields.ForeignKey('app.api.MyResource1', 'attr2', full=True) 

    class Meta: 
     queryset = bla bla 
     . 
     . 
     . 
相關問題