Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events 带事件的主干传递对象_Events_Backbone.js_Marionette_Backbone Events - Fatal编程技术网

Events 带事件的主干传递对象

Events 带事件的主干传递对象,events,backbone.js,marionette,backbone-events,Events,Backbone.js,Marionette,Backbone Events,在阅读主干教程时,似乎当从集合触发添加事件时,添加的项目将与事件一起发送(对于删除,情况也是如此)。我在网站上找不到有关此功能的任何文档,我很好奇是否有办法将对象与我的自定义事件一起发送。其次,在木偶中是否可能出现类似的情况?主干定义的每个对象都混合在一起,这意味着您可以使用它触发事件。它被定义为 触发器对象.触发器(事件,[*args]) 为给定事件或以空格分隔的事件列表触发回调。后继论点 to触发器将传递给事件回调 你只需要传递额外的参数就可以在回调中得到它们 比如说, var m = ne

在阅读主干教程时,似乎当从
集合
触发
添加
事件时,添加的项目将与事件一起发送(对于
删除
,情况也是如此)。我在网站上找不到有关此功能的任何文档,我很好奇是否有办法将对象与我的自定义
事件一起发送。其次,在木偶中是否可能出现类似的情况?

主干定义的每个对象都混合在一起,这意味着您可以使用它触发事件。它被定义为

触发器对象.触发器(事件,[*args])
为给定事件或以空格分隔的事件列表触发回调。后继论点 to触发器将传递给事件回调

你只需要传递额外的参数就可以在回调中得到它们

比如说,

var m = new Backbone.Model();
m.on('custom', function(more) {
     console.log(more);
});
m.trigger('custom', 'more info');
将记录更多信息

请参见演示

您将触发一个引用对象的事件,以模拟主干的行为:

var m = new Backbone.Model();
m.on('custom', function(model, more) {
     console.log(arguments);
});
m.trigger('custom', m, 'more info');

在衍生模型中:

var M = Backbone.Model.extend({
    custom: function() {
        this.trigger('custom', this);
    }
});

var m = new M();
m.on('custom', function(model, more) {
     console.log(model);
});
m.custom();

当然可以,您可以使用Backbone.Event

var collection = Backbone.Collection.extend();
collection = new collection();
collection.on("message", function(message){
  console.log(message);
});

var model = new Backbone.Model();
collection.add(model);
model.trigger("message", "This is message");
关于您可以看到哪些类型的事件

这是

您还可以使用marionete.js中的r

事件聚合器实现。它从Backbone.Events扩展来提供对象中的核心事件处理代码,该对象本身可以根据需要进行扩展和实例化

var vent = new Backbone.Wreqr.EventAggregator();

vent.on("foo", function(){
  console.log("foo event");
});

vent.trigger("foo");