2014-11-08 56 views
0

我正在研究如何使我的代碼在大型應用程序中更易於管理和可讀。我已閱讀了許多關於模塊模式和模塊顯示模式的文章和博客,但似乎總是缺少的一件事是頁面和綁定。Javascript模塊模式 - 頁面綁定

人們展示了模塊的例子,但是我還沒有找到任何好的實際工作例子。

例如,可以說我有一個頁面,其上有一個計算器。

我看過的所有例子都顯示了計算器以及如何爲其創建模塊,但是我正在尋找的是如何讓頁面和計算器相互交流。

人們是否爲每個頁面創建一個模塊例如; CalculatorPage,他們是否有綁定或初始化方法,並在那裏他們設置計算器模塊?這裏有一些(無效的js)來獲取圖片。

var Calculator 
    settings: { resultElement }, 
    add (x, y) function to add and set resultElement to 
    subtract (x,y) function to subtract and set resultElement to 

然後

var CalculatorPage 
    .... 
    bind (or init) = function() { 
    this.calculator = new Calculator(.results); 
    $('.add-button').on('click', this.calculator.add($('.x-field'.val(), $('.y-field').val()); 
    $('.subtract-button').on('click', this.calculator.subtract($('.x-field'.val(), $('.y-field'). 
  • 是每一頁有一個模塊?
  • 處理綁定的更好方法?

如果有人模塊的頁/真實世界應用的一些更好的例子,我真的很感激它..

+0

這實際上是「隨時隨地補辦」的事情,對這個問題沒有正確的答案。你是否需要一個覆蓋整個頁面的對象/模塊,如果是這樣的話,如果不是這樣的話! – adeneo 2014-11-08 20:51:33

回答

0

我想這裏的問題是,「頁」的語義左右。如果只顯示一個JS計算器,那麼確定你可以合理地命名模塊'calculatorPage'。對我來說,儘管「頁面」這個詞是指DOM。就我個人而言,我不會將命名與情景結合起來,除非我確定情況確實如此,並且希望突出顯示它,否則這一定是頁面上唯一的事情。

設置綁定是一個設計問題。如果您單獨使用jQuery,那麼您將需要在DOM就緒回調中設置事件處理程序。如果你想要更多的MV *結構,那麼你可以使用像AngularJS或Backbone等框架,它們有自己的抽象。基本上,雖然它歸結爲相同的事情,一旦DOM準備就緒,設置事件監聽器。