0

JavaScriptでMVCパターンを実装したいのですが、コントローラーの実装に問題があります。

MVCの概念は私には明らかです。MVCがどのように機能するかを理解しています。イベントがコントローラーを構築する適切な方法だとは思いません。また、JavaScriptでのイベントのエディションのため、多くの依存関係があります。JavaScriptでのMVCコントローラーの実装の小さな例をいくつか見てみたいと思います。

ps JavaScriptのみを使用してMVCパターンを実装したいのですが、MVCオープンソースフレームワークを使用したくありません。

ps宿題をしてほしくないのですが、JavaScriptでコントローラーを無礼にする方法がよくわかりません。

4

1 に答える 1

1

基本的にMVCはオブザーバーパターンに基づいています(そしてコントローラーも)

Javascript内にオブザーバーを実装するにはどうすればよいですか?

function Observer() {
    var subscribers = [];
    return {
        subscribe: function(eventName, object) {
            subscribers.push({ event: eventName, target: object });
        },
        unsubscribe: function(object) {
            var indexToDelete = subscribers.indexOf(object);
            subscribers.splice(indexToDelete, 1);
        },
        trigger: function(eventName, p1, p2, p3, p4, p5) {
            for (var i = 0; i < subscribers.lenght; i++) {
                if (subscribers[i].event == eventName) {
                    //target object must implement this function
                    subscribers[i].target[eventName](p1, p2, p3, p4, p5);
                }
            }
        }
    }
}

そして、どのようにそれを使用することができますか?

var model = { 
    fireChangesInsideOfModel: function(p1){ 
        //do some model update logic here
    } 
}
var controller = Observer();
    controller.subscribe("fireChangesInsideOfModel", model);

controller.trigger("fireChangesInsideOfModel", 11231); // 11231 - is an example of a parameter

これがお役に立てば幸いです。

于 2012-07-17T17:47:56.603 に答える