2017-01-20 4 views
2

私はBraintreeクライアントサンプル(https://developers.braintreepayments.com/start/hello-client/javascript/v3)をAngular2で動かそうとしています。私はAngular2(とJavascript)の新機能です。braintree on Angular2

まず、braintree-web:package.jsonの依存関係の下に「^ 3.6.3」を追加する必要があるかどうかはわかりません。またはindex.htmlの下

<script src="https://js.braintreegateway.com/web/3.6.3/js/client.min.js"></script> 

<script src="https://js.braintreegateway.com/web/3.6.3/js/hosted-fields.min.js"></script> 

を追加します。私は両方をやり終えた。

npm installを実行した後、node_modules/braintree-webの内部を見ると、.jsファイルしか表示されません。私はtsファイルは見ません。これは問題ですか?私はbraintree-webをこれに使うはずがありませんか?このパッケージはAngular1用に書かれていますか?私が実際にbraintree-webを使用する必要がある場合は、index.htmlに2つのjsファイルを含める必要がありますか? braintree-webにはすでにそれらが含まれていませんか?私payment.component.tsファイルで

、私はブレーントリークライアントコードをコピーして貼り付け:私はTSCを実行しようとすると

import { braintree } from 'braintree-web/client'; 
... 
ngOnInit() { 
    var authorization = '...'; 
    var submit = document.querySelector('input[type="submit"]'); 

    braintree.client.create({ 
     authorization: authorization 
    }, function (clientErr, clientInstance) { 
     if (clientErr) { 

、私は次のエラーを取得しています:

app/admin/user/payment.component.ts(3,27): error TS2307: Cannot find module 'braintree-web/client'

私は間違って何をしていますか?

+0

braintreeモジュールをapp.module.tsに登録しましたか? http://stackoverflow.com/questions/40353886/trying-to-integrate-braintree-web-into-angular2 – freshbm

+0

ありがとうございます。私は男がnpm install @ types/braintree-web @ 3.0.1を追加したことに気づいた。私は実際に今何か働くことができます。これまでのところ、私は実際にindex.htmlにjsファイルを含める必要があり、ブレーンツリーパッケージ(タイプに加えて)が必要であることを発見しました。しかし...今、私はBraintreeのサンプルコードに問題があります。基本的には、後で使用するためにクラスの一時メンバー変数に書き込むことを試みるサーバーからオブジェクトを戻します:this.temp = hostedFieldsInstance。しかし、私がそれをすると、私はエラーが発生します:Uncaught TypeError:未定義(...)のプロパティ 'temp'を読み取ることができません。何か案は? –

+0

@JennaSどうやってそれを稼働させましたか?私はあなたがしたことをコピーしましたが、私はまだモジュール 'braintree-web/client'を見つけることができませんというエラーが表示されています – nareeboy

答えて

5

Angular2は強く型付けされているため、Braintreeが提供するJavascriptサンプルコードを使用することはできません。それらのすべての関数に定義された型が必要です。だからTrying to integrate braintree-web into Angular2は、@ type/braintree-webが(package.json内に)インストールされている必要があるという最初の手掛かりでした。これらはBraintreeの公式ではありませんが、オープンソースの投稿はhttp://definitelytyped.org/です。私はBraintreeのサポートに援助を依頼しました。彼らはAngular2でJavascriptのサンプルコードを使用できると述べましたが、各パラメータのタイプを指定する必要があります。彼らは、自分のコードではないので、型パッケージを間違いなくタイプすることを推奨できませんでした。

ファイルの先頭にこれ以上のインポートは必要ありませんが、index.htmlに含まれる2つのBraintree Javascriptファイルが必要です。

+0

ここに指定されているようにnpm経由でインストールしようとしたとします。https://developers.braintreepayments .com/guides/client-sdk/setup/javascript/v3#npm - そうなら、運がいい?可能であれば、私はBraintreeのサーバーから直接JSを含めることを避けることを好むでしょう。 –

+0

これを試したことがありません。私はこれをやろうとしたときにこのオプションを見たとは思わない。私はそれを撃つだろう。ありがとう! –

+0

これは価値がありますが、これは今、私がやっていることです。ブレーンツリーを直接角度を使って(タイピングなどを含む)使用しています。私はnpmでインストールしました。これまで働いているようだ! –

関連する問題