2017-12-05 5 views
1

きれいできれいなJavaScriptを書くために、私はModulesで手をかけています。私は、この規則モジュールを作成しました:私は、ドロップダウン要素のイベントにフックし、オプションが選択されているときに我々は正しいモーダルを取得するには、RulesModule.ruleModalsメソッドにそのオプションを渡す捕捉されていないタイプのエラーを取得する:RulesModule.ruleModalsは関数ではありません

//RulesModule.js 
var RulesModule = (function() { 

    return { 

     checkModal: function() { 
      var checkModalContents = // string contents 

      return checkModalContents; 
     }, 

     ruleModals: function (modalType) { 
      switch (modalType) { 
       case "CheckDateRule": 
        return checkModal(); 
       default: 
        return "UNKNOWN MODAL"; 
      } 
     } 
    } 
}); 

。私のHTMLで

//EventSubscriptions.js 
    var go = false;//switch off 
    $('#rules').on('click', function() {//on click 
    if (go) {//if go 
      var selectedRule = $("#rules").find(":selected").val(); 

      var contents = RulesModule.ruleModals(selectedRule); // this line throws the error 

      console.log(contents); 
      $("#modalContents").empty(); // clear up contents 
      $("#modalContents").append(contents); 
      $("#myModal").css("display", "block"); 

     go = false;//switch off 
    } else { go = true; }//if !go, switch on 
}).on('blur', function() { go = false; });//switch off on blur 

、私は私のヘッダー内の2つのJavaScriptファイルを読み込む:RulesModuleからの戻りがオブジェクトであるとcheckModal & ruleModalsが、それには2つの方法なのでによってcheckModalを呼び出してみてください

<head> 
    <meta charset="utf-8" /> 
    <title></title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <script src="~/JavaScript/Modules/RulesModule.js"></script> 
    <script src="~/JavaScript/EventSubscriptions.js"></script> 
</head> 

答えて

1

this.checkModal

var RulesModule = (function() { 
 
    return { 
 
    checkModal: function() { 
 
     var checkModalContents = ''; // string contents 
 
     console.log('Check Modal called') 
 
     return checkModalContents; 
 
    }, 
 
    ruleModals: function(modalType) { 
 
     switch (modalType) { 
 
     case "CheckDateRule": 
 
      return this.checkModal(); 
 
     default: 
 
      return "UNKNOWN MODAL"; 
 
     } 
 
    } 
 
    } 
 
}()); 
 

 
console.log(RulesModule.ruleModals('CheckDateRule'))

関連する問題