1

我最近一直在试验 Javascript MVC 的核心部分,暂时是 MC 位。

当我从模型触发自定义事件时,例如。this.publish('初始化'); 文档指出“模型的短名称将自动加上前缀。”。但是,每当发布此事件时,它似乎使用始终为“模型”的 _shortName 属性,而不是触发事件的类的名称。

所以我总是有一个事件 model.initialised 而不是例如 Data.initialised ,其中 Data 是模型名称,这就是我想要的。

我可以在源代码中看到发生这种情况的地方。在 jQuery.Model 定义的静态方法中有这样的:

publish: function( event, data ) {          
    if ( window.OpenAjax ) {
        OpenAjax.hub.publish(this._shortName + "." + event, data);
    }
},

我可以删除上面的下划线,它会做我想要的(以及它应该做什么?),因为 this.shortName 包含模型的正确名称,但它肯定不是要走的路。

在我将 jquery 从 1.4.x 升级到 1.5.x 之前,我的应用程序似乎正确地发布了事件(作为大型组织的一部分,我没有选择使用哪个 jquery 版本)并且据我所知 openAjax 不适用于 1.4 。X。所以我认为由于这种变化,javascript MVC 用于发布/订阅的机制是不同的。任何想法我做错了什么?如果需要,可以发布更具体的代码。

非常感谢任何帮助

4

0 回答 0