2016-09-24 2 views
2

konnte ich erfolgreich die API auf Web implementieren, hier ist, wie es aussieht, habe ich eine Schaltfläche in einer regulären HTML-Datei haben ...Wie kann ich die Plaid-API mit Ionic implementieren?

<div> 
    <span class="radio-button radio-left" id="sandboxLinkButton">Sandbox Mode</span> 
</div> 

ich das Script-Tag schließen ...

<script src="https://cdn.plaid.com/link/stable/link-initialize.js"></script> 

und ich gehören die folgenden JavaScript in hTML body ...

<script type="text/javascript"> 
    var sandboxHandler = Plaid.create({ 
     clientName: 'SUM', 
     env: 'tartan', 
     product: 'auth', 
     key: 'test_key', 
     onSuccess: function(token) { 
     //window.location = '/accounts.html?public_token=' + token; 
     console.log("yes"); 
     }, 
    }); 

    // Open the "Institution Select" view using the sandbox Link handler. 
    document.getElementById('sandboxLinkButton').onclick = function() { 
     sandboxHandler.open(); 
    }; 

</script> 

Jetzt möchte ich das gleiche mit Winkel js zu tun. Ich benutze einen ionischen Rahmen (nicht dass es wirklich wichtig ist). So zeige ich zuerst die notwendigen HTML unter Verwendung der folgenden ...

app.config(function($stateProvider, $urlRouterProvider) { 
    $urlRouterProvider.otherwise('/app'); 
    $stateProvider 

    .state('app', { 
    url: '/app', 
    templateUrl: 'templates/menu.html', 
    controller: 'AppCtrl' 
    }) 
}); 

Meine menu.html Datei enthält die folgende Schaltfläche ...

<span ng-click="create()" class="radio-button radio-left" id="sandboxLinkButton">Sandbox Mode</span> 

auf ng-click erreicht es die folgenden Controller. Ich habe versucht die API in diesem Controller ohne Erfolg zu implementieren ...

app.controller('AppCtrl', function($scope, $ionicModal, $timeout) { 
    var sandboxHandler = Plaid.create({ 
    clientName: 'SUM', 
    env: 'tartan', 
    product: 'auth', 
    key: 'test_key', 
    onSuccess: function(token) { 
     console.log("yes"); 
    }, 
    }); 

    $scope.create = function() { 
    sandboxHandler.open(); 
    } 
}); 

erhalte ich die Fehler Plaid nicht in der Steuerung definiert ist. Warum das?

EDIT

ich eine Web-App-Version Winkel mit repliziert und es funktionierte. Früher habe ich die folgenden CDN anstelle der ionischen/Winkel ein

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 

Aber ich kann immer noch nicht bekommen es auf meinem ionischen Web-App zu arbeiten. Ist jemals jemand anderes auf dieses Problem gestoßen?

+0

Sind auch Sie noch die 'Link-initialize.js' aus dem Plaid CDN? – Phil

+0

@Phil ist in meiner HTML-Datei enthalten, also ja, ich denke schon – Bolboa

+0

Welche HTML-Datei obwohl? Ich glaube nicht, dass es in Ihrer Datei 'menu.html' funktionieren wird, wenn es sich um – Phil

Antwort

1

Als ich die Bibliothek enthalten Ich habe sofort die folgende Fehlermeldung im Browser: Uncaught TypeError: Cannot read property 'appendChild' of null

Es gibt ähnliche Fragen zu diesem Fehler in Bezug auf verschiedene Bibliotheken here und here, aber ich war nicht in der Lage, das Problem auf solchen auf Basis zu lösen Antworten.

Der Lösung, die ich am nächsten fand, war in this issue report innerhalb des Plaid-Repository auf GitHub. Es beschreibt ein Problem mit der Bibliothek, die nicht funktioniert, wenn sie in das Tag gestellt wird. A commit in diesem Problembericht beschreibt, dass dieses Problem gelöst werden kann, indem das Skript innerhalb des Tags <body> anstelle des Tags <head> eingefügt wird.

Ich würde empfehlen, den Problembericht zu abonnieren, um zu sehen, ob in Zukunft andere Lösungen eingeführt werden.

So tldr; Versuchen Sie, das <script>-Tag von auf das <body> zu verschieben.

+0

ja ich bekomme diesen Fehler auch, ich werde diese Links überprüfen und sehen, was ich herausfinden kann. – Bolboa

+0

Haben Sie versucht, die '' von '' nach '' noch zu verschieben? – Dexter

+0

Ja, ich habe, immer noch die gleichen Fehler und die API wird nicht funktionieren. Ich bin mir nicht sicher, was ich tun soll. Wäre es hilfreich, wenn ich mit meinem Problem ein einfaches öffentliches Repo auf GitHub mache? – Bolboa

Verwandte Themen