簡體   English   中英

如何從另一個控制器調用函數?

[英]How to call a function from another Controller?

我正在制作一個應用程序來計算一些預算,所以我有3個控制器。 第二個控制器稱為UIConntroller,其工作是從用戶那里獲取輸入並返回到最后一個稱為“控制器”的控制器。 然后,從最后一個控制器中,我調用UIConntroller中的get inputInput函數。 當我嘗試調用此函數時,出現錯誤,即UICtrl.getInput不是函數。

我的目標是調用UIConntroller中的函數。



var budgetController = (function () {

} )();


//===========BDGET CONTROLER========== this gets input from the user
var UIConntroller = (function () {
     return {
         getInput: function () {
             return {
             type : document.querySelector('.add__type').value, //will be eithe inc or exp
            description : document.querySelector('.add__description').value,
             value : document.querySelector('.add__value').value
             };
         }
     };
});


//=========GLOBAL APP CONTROLLER========================================
var controller =(function (budgetCtrl,UICtrl) {

    var ctrlAddItem = function () {
            // 1.Get te input field data
            var input = UICtrl.getInput();
            console.log(input);


            //2. Add the item to the budget controller


            //3. Add The Items to the UI


            //4. Calculate the budget 


            //5. Display the budget to the UI


    }

    document.querySelector('.add__btn').addEventListener('click', ctrlAddItem);
//key press event listiner
    document.addEventListener('keypress',function(event){
        if (event.keyCode === 13 || event.which ===13) {
            ctrlAddItem();
        } else {

        }

    })

})(budgetController,UIConntroller);

當我運行代碼時,我期望下面的getInput函數被調用,以便它可以接受用戶的輸入:

getInput: function () {
             return {
             type : document.querySelector('.add__type').value, //will be eithe inc or exp
            description : document.querySelector('.add__description').value,
             value : document.querySelector('.add__value').value
             };
         }

我該如何解決這個問題?

您的IIUI for UIConntroller缺少()來調用它

//===========BDGET CONTROLER========== this gets input from the user
var UIConntroller = (function () {
     return {
         getInput: function () {
             return {
             type : document.querySelector('.add__type').value, //will be eithe inc or exp
            description : document.querySelector('.add__description').value,
             value : document.querySelector('.add__value').value
             };
         }
     };
}());
//^^^ Missing ()

它應該是:

UICtrl().getInput();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM