【问题标题】:jQuery PubSub based MVC isn't firing custom events基于 jQuery PubSub 的 MVC 不会触发自定义事件
【发布时间】:2014-12-16 23:07:30
【问题描述】:

我正在尝试构建一个基于 PubSub 的 MVC(因为某些原因)。 如果您查看this jsFiddle,您会发现没有任何自定义事件被触发,我不知道为什么......

document.addEventListener('DOMContentLoaded', function() {
    var o = $({})

    var model = {
        initialize: function() {
            o.on('data.request', this.getData.bind(this))
        },

        getData: function() {
            var data = 'new data'
            o.trigger('data.received', data)
        }
    }

    var view = {
        initialize: function() {
            this.view = $('#view')
            o.on('data.received', this.update.bind(this))
        },

        update: function(e, data) {
            this.view.html(data)
        }
    }

    var controller = {
        initialize: function() {
            this.bindEvents()
        },

        bindEvents: function() {
            o.on('click', '.js-data-request', this.request.bind(this))
        },

        request: function() {
            o.trigger('data.request')
        }
    }

    model.initialize()
    view.initialize()
    controller.initialize()
})

有人可以启发我吗?

【问题讨论】:

    标签: javascript jquery model-view-controller publish-subscribe


    【解决方案1】:

    在您的控制器中,您忘记将事件公开给视图(相反,您将其绑定到您的 pub/sub 对象)。你应该这样做:

    bindEvents: function() {
        $('body').on('click', '.js-data-request', this.request.bind(this))
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 2012-10-31
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      • 2012-06-08
      相关资源
      最近更新 更多