我正在使用Backbone.js Paginator插件。它通過爲分頁中涉及的模型定義自己的Collection來進行無限滾動分頁。如果用戶登錄,則PHP後端將返回具有附加屬性的Backbone對象is_liked
以使該項目具有不同的CSS樣式。使用Paginator(backbone.js)時無法檢測用戶是否登錄
問題:當分頁程序插件(有自己的收藏Backbone.Paginator.requestPager
)沒有一個GET在後端fetch
請求,後端是無法確定用戶是否登錄!但是,當我使用通常的Backbone.Collection
時,後端能夠確定用戶是否已登錄!它也適用於$.post()
。這讓我覺得問題出在插件的Backbone.Paginator.requestPager
我正在使用Chrome的開發人員工具的網絡部分檢查結果。如果驗證檢查有效,則可以看到api/test
返回有關用戶的一些數據。如果登錄狀態無法確定,則返回null
UPDATE:的GET
請求通過Backbone.Paginator.requestPager
收集發送不包括在在GET
請求被髮送Backbone.Collection
發現頭的Cookie
信息。這可能是問題嗎?我如何強制Backbone.Paginator.requestPager
不從頭去除cookie數據?
這裏發生了什麼?我該如何解決這個問題(不需要重寫自己的分頁代碼)?
使用PHP後端(Laravel框架)
Route::any('api/test', function() {
// This will return some data of the user if logged in
return json_encode(Auth::user());
});
典型的骨幹收集[作品]
SimilarUserCollection = Backbone.Collection.extend({
model: User,
url: 'api/test'
});
分頁程序的集合[行不通] 驗證測試
PhotoCollection = Backbone.Paginator.requestPager.extend({
model: Photo,
paginator_core: {
type: 'GET',
dataType: 'json',
url: 'api/test'
},
paginator_ui: {
firstPage: 1,
currentPage: 1,
perPage: 7,
totalPages: 10
},
server_api: {
'page': function() { return this.currentPage; }
},
parse: function (response) {
return response;
}
});
您是根據發送的cookie確定登錄信息的?在驗證標題上?怎麼樣?你的第一個集合(有效)使用你的'用戶'模型,但是部分集合(不會)使用你的'photo'模型 – tkone 2012-07-27 11:58:24
這兩個集合在同一個URL上執行'fetch()',檢查用戶是否登錄了,所以我猜'模型'無所謂,但我可能是錯的。 PHP框架使用數據庫會話,所以我想這意味着存儲一個cookie,其會話數據存儲在數據庫中。我使用PHP框架的內置函數來獲取用戶是否登錄。 – Nyxynyx 2012-07-27 12:03:01
嘗試將'PhotoCollection'的'Model'從'Photo'更改爲'User',並得到相同的結果。 – Nyxynyx 2012-07-27 12:06:31