簡體   English   中英

骨干收集“添加”事件未觸發

[英]Backbone Collection 'add' event not firing

我的收藏夾中有一個事件偵聽器,用於偵聽“添加”事件,該事件僅在添加到路由器中添加的示例數據時才觸發,但在我的視圖中添加更多模型時,不會觸發兩者都在下面:

采集:

Application.Collection.extend({
  name: "todos/todos",
  initialize: function() {
    this.on("add", console.log("added"));
  },
  url: "/todo-application/todos"
});

路由器(觸發事件):

collection = new Application.Collections["todos/todos"]();
var m = new Application.Model({
    title: 'Finish screencast',
    done: true
});
collection.add(m);

查看(這不會觸發事件):

Application.View.extend({
  name: "todos/index",
  events: {
    "submit form": function(event) {
        event.preventDefault();
        var attrs = this.serialize();
        this.collection.add(attrs);
        this.$('input[name=title]').val('');
    }
  }
});

視圖中的collection.add確實可以正常工作,因為將模型添加到了集合中並顯示在屏幕上 ,但是當添加示例數據時,集合僅在初始頁面加載時為我提供了console.log()

編輯:

根據我的Backbone Chrome擴展程序,確實確實觸發了該事件,但是由於某種原因該事件綁定無法正常工作,因此我嘗試使用this.listenTo而不是.on

當在對象上使用on函數時,您callback綁定到該對象上的event ,並且該callback必須是一個函數,如下所示:

this.on("add", function() { console.log("added"); });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM