閱讀Backbone教程,看起來add
事件是從collection
中觸發的,添加的項目與事件一起發送(remove
也一樣)。我在backbonejs.org網站上找不到有關此功能的任何文檔,並且很好奇,是否有方法可以將我的自定義events
與對象一起發送。其次,這在木偶中是可能的嗎?事件中的骨幹傳遞對象
3
A
回答
4
Backbone定義的每個對象在Backbone.Events
中混合,這意味着您可以使用object.trigger
觸發事件。它被定義爲
觸發 object.trigger(事件,[*參數])
觸發回調對於給定的事件,或事件的空間分隔的列表。後續的參數 觸發將傳遞給事件回調。
你只需傳遞額外的參數讓它們在你的回調中。
例如,
var m = new Backbone.Model();
m.on('custom', function(more) {
console.log(more);
});
m.trigger('custom', 'more info');
將記錄more info
用於演示
見http://jsfiddle.net/nikoshr/HpwXe/你會觸發與該對象的引用的事件仿效骨幹的行爲:
var m = new Backbone.Model();
m.on('custom', function(model, more) {
console.log(arguments);
});
m.trigger('custom', m, 'more info');
http://jsfiddle.net/nikoshr/HpwXe/1/
而且在導出模型:
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();
當然
0
是的,你可以使用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");
關於哪些類型的事件,你可以看到骨幹documentation。
這是demo
您也可以使用[R從Marionette.js
事件聚合實現。它從Backbone.Events擴展到在對象中提供核心事件處理代碼,該對象本身可以根據需要進行擴展和實例化。
var vent = new Backbone.Wreqr.EventAggregator();
vent.on("foo", function(){
console.log("foo event");
});
vent.trigger("foo");
相關問題
- 1. 骨幹:參考事件父對象
- 2. 這裏面對象傳遞作爲參數傳遞給骨幹視圖:「窗口」或「骨幹視圖」對象?
- 3. 對象沒有傳遞到模板中的骨幹
- 4. 將多個對象傳遞給Rails 4中的骨幹視圖
- 5. 骨幹事件
- 6. 骨幹事件
- 7. 骨幹事件
- 8. 傳遞模型對象以在骨幹中查看
- 9. 骨幹 - 鑑於事件自定義事件對象
- 10. 骨幹js傳遞論據
- 11. 骨幹多事件
- 12. 如何將'this'傳遞給使用骨幹的事件?
- 13. 在骨幹模型中偵聽對象上的更改事件
- 14. 骨幹事件傳播澄清
- 15. 骨幹事件對父母的看法
- 16. jQuery的事件和骨幹
- 17. 骨幹1.0重置對同步事件
- 18. 單身人士對象上的骨幹事件監聽器
- 19. 爲什麼函數在骨幹中的選項對象中傳遞?
- 20. 骨幹+ RequireJS對象繼承
- 21. 骨幹獲取對象
- 22. 骨幹對象全球
- 23. 未綁定骨幹事件
- 24. 骨幹JS事件結合
- 25. 骨幹監聽Backbone.history事件
- 26. 骨幹事件不是DIV
- 27. 骨幹事件或路由?
- 28. 骨幹路由器事件
- 29. 骨幹事件再次
- 30. 骨幹JS事件負載