Javascript 我的插件中的Successcallback和Errorcallback

Javascript 我的插件中的Successcallback和Errorcallback,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,嗨,我正在尝试调用插件中的Successcallback和我的Errorcallback。我使用的是爱奥尼亚v1,它似乎显示了所有成功和错误的控制台 这是我使用的插件 var exec = require('cordova/exec'); var cordova = require('cordova'); var triangle = { initialize: function(applicationId, accessKey, secretKey, successCallback

嗨,我正在尝试调用插件中的Successcallback和我的Errorcallback。我使用的是爱奥尼亚v1,它似乎显示了所有成功和错误的控制台

这是我使用的插件

var exec = require('cordova/exec');
var cordova = require('cordova');

var triangle = {

    initialize: function(applicationId, accessKey, secretKey, successCallback, errorCallback) {
        // Define document events used by the API
        cordova.addDocumentEventHandler('ontaperror');
        cordova.addDocumentEventHandler('ontapsuccess');
        cordova.addDocumentEventHandler('ontapdetect');

        // Call the Android side to initialize the Triangle session
        exec(successCallback, errorCallback, "Triangle", "initialize", [applicationId, accessKey, secretKey]);
    }
}

module.exports = triangle;
这是在我的控制器中调用成功和错误回调

document.addEventListener('deviceready', scanCreditCard, false);

    function scanCreditCard() {

        navigator.triangle.initialize(
            "My Application ID", // application ID
            "Access Key", // access key
            "SecretKey", // secret key
           succcessCallack(),    
           errorCallback() 

        );
    };


    function succcessCallack() {

        console.log("Ready to scan")

        // Subscribe to events that the Triangle APIs raise
        document.addEventListener('ontaperror', onTapError(), false);
        document.addEventListener('ontapdetect', onTapDetect(), false);
        document.addEventListener('ontapsuccess', onNewCard(), false);


    }

    function errorCallback(message) {

        console.log("there was an error initializing the Triangle APIs");
        console.error(message);
        alert("Error")

    }

    function onNewCard(card) {

        console.log("Scanned card successfully.");

        // Display basic card information to the user
        // various other properties such as cardholderName,
        // activationDate, expiryDate, cardPreferredName, and encryptedAccountNumber
        // may be available.
        var dataToShow = card.cardBrand;
        if (card.cardholderName != undefined) {
            dataToShow += "\n" + card.cardholderName;
        }
        dataToShow += "\n" + card.lastFourDigits;
        alert(dataToShow);

    }

    function onTapDetect() {
        console.log("Detected new tap.");

    }


    function onTapError(error) {

        console.log("Error processing contactless card.");
        console.error(error);
    }
按名称引用函数时,不需要包含括号。括号表示执行函数并使用其返回值

navigator.triangle.initialize(
    "My Application ID",
    "Access Key",
    "SecretKey",
    succcessCallack,    // remove ()
    errorCallback       // remove ()
);