代码在哪里链接View to Model和View to Controller?

时间:2013-12-11 15:43:56

标签: javascript model-view-controller observer-pattern

我认为我对模型 - 视图 - 控制器的概念有基本的了解。我在服务器端开发的环境中使用它,但客户端似乎有点不同。我正在尝试编写没有框架的应用程序来更好地理解。

我对javascript MVC应用程序的理解

  • 属于View的DOM元素的事件处理程序是Controller上的方法(或由View定义到Controller上方法的方法/函数)。
  • View使用观察者模式监视模型
  • 中的更改

但是,我不确定的是代码设置这些链接的位置。

在我看来,这些连接将位于View或Controller的初始化函数中。

一个非常简单的玩具示例:

function View(model, controller) {

    model.addSubscriber(this.render);

    // code to set up DOM elements etc.

    this.button1 = document.getElementById("button1");

    this.button1.addEventListender("click", function() {
        controller.buttonhandler();
    })
}

View.prototype.render = function() {
    //
}

var view = new View(model, controller)

或者:

function Controller(model, view) {

    model.addSubscriber(view.render);

    view.button1.addEventListender("click", function() {
        this.buttonhandler();
    })

}

Controller.prototype.buttonhandler = function() {
    //
}

var controller = new Controller(model, view);

在客户端javascript中,这些中的任何一种都是“正确”的方式吗?如果没有,是否有一种方式优于另一种方式?或者我只是混淆整个问题?

1 个答案:

答案 0 :(得分:1)

您可以查看我关于该主题的文章:

如果你喜欢,我会很高兴的。