如何在ajax加载的页面中使用MVC的功能

How do I use functions of the MVC in a page loaded by ajax?

本文关键字:功能 MVC ajax 加载      更新时间:2023-09-26

我的控制器看起来像这样:

jQuery.extend({
    Controller: function(model, view){
    //-----VIEW-----//
    var vlist = $.ViewListener({
        clickItem : function(Item){
            switch (Item) {
                case 'File':
                    //do something
                    break;
                default:
                    //do something else
            }
        }
    });
    view.addListener(vlist);
    //-----MODEL-----//
    var mlist = $.ModelListener({
        gotContent : function(Item) {
            switch (Item.type) {
                case 'Download':
                    //do someting else
                    break;
                default:
                    //do something else
            }
            //update view
        }
    });
    model.addListener(mlist);
    }
});

如何使用非MVC创建的页面中的clickItem函数?

我尝试过view.clickItem和许多其他方法,但没有定义任何内容,因为它都在私有函数中。

我这样加载MVC:

$(function(){
    var model = new $.Model();
    var view = new $.View($("#framework"));
    var controller = new $.Controller(model, view);
    view.init();
});

基本上,我有一个链接,我想以与clickItem功能相同的方式操作。

通过使用jQuery的.live()方法解决了这个问题。在ajax成功回调中,我运行了一个jQuery.live()方法,将onclick事件附加到调用clickItem()函数的元素。