Backbone 嵌入式集合事件

jogvjijk  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(133)

我已经创建了一个由基本属性(名称、活动)和一个集合(成员)组成的模型(请参阅Delegation)。
See jsfiddle
fetch方法更新模型并在其上触发一个sync事件-但我希望在嵌入的集合同步时得到通知(即在真实的情况下,当内部集合同步时呈现视图)。
我试过这个

this.listenTo(this.get('members'),'sync',function(){...}

但相应的事件永远不会触发。
什么是正确的方法来触发它?

zu0ti5jz

zu0ti5jz1#

当你执行Backbonefetch函数时,它返回一个PROMISE,你可以使用该函数然后在fetch完成的那一刻启动一个函数,你也可以在它失败的时候使用catch

例如:

this.model = new Backbone.Model()
this.model.url ="example"
this.model.fetch().then((data) => { 
    console.log("succes: " + data); // Finished the fetch successfully 
  }).catch((data) =>{ 
    console.log("error: " + data); // The fetch ended in error
  })

对于您的代码:

你可以在这部分中使用它Backbone.Model.prototype.fetch,或者如果你的fetch函数返回一个Promise,在调用模型的fetch时使用它。

oxiaedzo

oxiaedzo2#

我没有看到任何获取集合的代码,因此sync没有在集合上被触发。您应该执行delegation1.get('members').fetch()。要使其正常工作,集合也应该有自己的URL。

相关问题