0

コレクションのビューがあり、そのremoveメソッドを呼び出すと、そのコレクションのremoveメソッドも呼び出しますが、「ReferenceError:el is not defined」が表示されますが、これは意味がありません。なぜでしょうか。コレクションにはエルが必要です。

呼び出しコード:

try {

 myAppModel=backboneApp.views.privateViews.myAppsTabView.myAppsView.views.myAppsPrivateView.collection.get(appId);
                                            backboneApp.views.privateViews.myAppsTabView.myAppsView.views.myAppsPrivateView.remove(myAppModel);

} catch(e) {
console.log("delFromMyAppsCollection: Failed to delete app from collection e= " + e);
}

ビュー内のメソッドを削除します。

remove : function(modelToRemove) {
        alert('Killing!');
        console.log("MyAppsPrivateView.remove called with model: ", modelToRemove );   
        this.collection.remove(modelToRemove);
        console.log("MyAppsPrivateView.remove collection: ", this.collection );
        this._rendered = false;
    }

コレクション/ビューから要素を削除する方が良い方法かもしれませんが、それでもコレクションがエルを持っていないことについて不平を言っているのは奇妙に思えます、何かアイデアはありますか?

前もって感謝します。

念のため、

ビュー定義:

var MyAppsPrivateView = Backbone.View.extend( {
    // Reference to this collection's model.
    model:      PapsCatalog , // don't should be PapModel instead of a collection?
    templateId: Epc2G.myAppsTemplateId,
    template:   jQuery('#' + this.templateId).html(),

インスタンス化を表示:

var options = {
            className : "MyAppsContainer",
            uid : "myAppsPrivateView",
            collection : papsCollection,
            el : "#myAppsView"
        };

        var oMyAppsPrivateView = new MyAppsPrivateView(_.clone(options));
4

1 に答える 1

1

Backbone.Viewそれはすでにメソッドを持っていることに関係しているのremoveでしょうか、そしてあなたはそれをオーバーライドしていますか?

これは複合ビューの状況のように聞こえますが、コレクション内のすべてのモデルのビューを持つことを検討しましたか?

于 2012-05-09T23:36:08.023 に答える