2016-04-09 12 views
1

私はフィルタを実行しようとしていますが、フィルタリングされた値でコレクションをリセットしますが、リセット後、collection.fullCollectionは元の。Backbone.PageableCollectionのfullCollectionはリセット後に異常な動作をします

これは私のコレクションです:

var todoCollection = Backbone.PageableCollection.extend({ 
    mode:'client', 
    search: function(letters){ 
    var self = this; 
    if(letters === "") return this.fullCollection.models; 

    var pattern = new RegExp(letters,"i"); 
    return this.fullCollection.filter(function(data) { 
     return pattern.test(data.get("text")); 
    }); 
    } 
}); 

あなたはこのフィドルhereで確認することができます。

+0

バックボーンコレクションは、期待通りに動作しているようです。それは更新されていないプラグイン 'fullCollection'のものです。彼らはそのような機能をサポートすると主張していますか?もし多分これはpaginatorプラグインの問題です。あなたはgithub ..で問題を起こそうとしましたか? –

+0

私は彼らがそのような機能を主張しているかどうかはわかりませんが、私はそれがこの特定の方法で使用されていて、うまく動作しているのを見ました。私はgithubで問題を提起する前にもう一度試してみるつもりです。 – shahsank3t

答えて

0

検索機能は、todoCollectionのインスタンスを返す必要があります。

var todoCollection = Backbone.PageableCollection.extend({ 

mode:'client', 
    search: function(letters){ 
    var self = this; 
    if(letters === "") return this.fullCollection.models; 

    var pattern = new RegExp(letters,"i"); 
    result = this.fullCollection.filter(function(data) { 
     return pattern.test(data.get("text")); 
    }); 
    return new todoCollection(result); 
    } 

Working fiddle

+0

私の問題はtodoCollectionのモデル/インスタンスを返すことではなく、todoCollectionをリセットして、最初のモデルをtodoCollection.fullCollectionからそれをしてはならないようにすることです。 (fullCollectionはpaginatorプラグインの一部です) – shahsank3t

+0

私のポストに更新されたフィドルリンクを見ることができますか?もはや最初のモデルをスライスしません。私はなぜそれが最初にそれをやっていたのかわかりませんが。 – Abhinav

+0

私は更新されたフィドルを見て、正しい長さを示していますが、新しくリセットされたコレクションのフィルタリングされたモデルは正しいものではありません。あなたはリセットコレクションをconsole.logすることができ、それがモデルであることを確認して私が何を言おうとしているのか見ることができます。 – shahsank3t

関連する問題