서로의 이벤트에 응답하고 싶은 뷰를 분리했습니다. 내 application.js 파일에 이벤트 수집기를 추가하고 첫 번째보기에서 내 함수에서 이벤트를 트리거했습니다. 그래도 그 사건에 대한 두 번째 견해를 보일 수는 없습니다. Derrick Bailey의 이벤트 수집기 토론과 documentcloud.github.io 토론을 살펴 보았습니다. 나는 coffeescript와 함께 작동하는 구문을 찾을 수 없었고, 내가 찾은 구문을 어떻게 번역하는지 잘 모르겠습니다. 내가 이벤트를 게시 할Backbone-on-rails 이벤트 수집기
내 첫 번째보기는 다음과 같습니다
class Mlp.Views.PoniesIndex extends Backbone.View
poniesTemplate: JST['ponies/index']
events:
'submit #new_pony': 'createPony'
'click #pony_up': 'ponyUp'
initialize: ->
console.log(Mlp.Collections.Settings)
@collection.on('reset', @render, this)
@collection.on('add', @appendPony, this)
@collection.on('change', @render, this)
ponyUp: (event) ->
event.preventDefault()
Mlp.vent.trigger('ponyUp', @collection)
@collection.ponyDown()
@collection.ponyUp()
내 이벤트 애그리 게이터 (aggregator)는 application.js 파일에 있습니다
//= require jquery
//= require jquery_ujs
//= require underscore
//= require backbone
//= require mlp
//= require_tree ../templates
//= require_tree ./models
//= require_tree ./collections
//= require_tree ./views
//= require_tree ./routers
//= require_tree .
Mlp.vent = _.extend({}, Backbone.Events);
내 응용 프로그램이 추가 할 때 의 .js 파일 나는 콘솔 로그를 원하는 얻을 :
Mlp.vent.bind("ponyUp", function(collection){
console.log("pony up!");
});
을하지만 난에 이벤트 바인더를 추가 할 때
class Mlp.Views.SettingsIndex extends Backbone.View
template: JST['settings/index']
events:
'submit #new_setting': 'createSetting'
'click #change_of_venue': 'randomSetting'
initialize: ->
@collection.on('ponyUp', @alterbox, this)
@collection.on('reset', @render, this)
@collection.on('add', @appendSetting, this)
@collection.on('change', @render, this)
alertbox: (collection) ->
event.preventDefault()
console.log("pony up!")
내가 시도 diffent 구문의 다양한하지만 난 여전히 내가하는 초기화에서 컬렉션에 바인딩하거나 이벤트에 바인딩해야하는지 확실하지 않다 : 나는 아무것도 얻을 게시 된 이벤트를 수신 할보기 선언. 내가 본 예제에서는 밑줄의 _.bindAll을 사용합니다. 내가 그것을 시도했을 때 "undefined"의 bind를 읽을 수 없다. 내 application.js에서 밑줄이 필요하다. 이것이 내가 이해하지 못하는 몇 가지 기본 구문이라고 확신합니다.
도움을 주셔서 감사합니다.
그 중 하나였습니다! 완전히 새로운 세상입니다. – DizzyDez