2016-03-30 8 views
0

私はその後、呼び出し通常のjavascriptの使用angualrjs

<script type="text/javascript"> 
     //<![CDATA[ 

     /*** Do not change ***/ 
     var AWIN = {}; 
     AWIN.Tracking = {}; 
     AWIN.Tracking.Sale = {}; 

     /*** Set your transaction parameters ***/ 
     AWIN.Tracking.Sale.amount = '{{order_total}}'; 
     AWIN.Tracking.Sale.orderRef = '{(order_id}}'; 
     AWIN.Tracking.Sale.parts = '{{cats}}'; 
     AWIN.Tracking.Sale.voucher = ''; 
     AWIN.Tracking.Sale.currency = 'GBP'; 
     AWIN.Tracking.Sale.test = '0'; 
     AWIN.Tracking.Sale.channel = 'aw'; 
     //]]> 
    </script> 
私は上記のコードを呼び出す必要が

は(angualr VARSでプレースホルダを埋める)angularjsアプリに追跡するアフィリエイト用のJavaScriptコードのレガシーとを含めるようにしようとしていますこれを電話する:

<script src="https://www.dwin1.com/xxxx.js" type="text/javascript" defer="defer"></script> 

これを行うにはどうすればよいですか?私はAngular関数にコードを配置しようとしましたが、成功しませんでした。また、変数を$ windowに渡して、私の最後にCDATAに挿入しようとしましたが、成功しませんでした。何か案は?


私はこのコードを追加する必要がありますが、あなたがしようとしているものをangualrjsコントローラ

+0

何を達成しようとしていますか?これは角度の問題解決方法にあまりよく似ていないように見える – messerbill

+0

高レベルから、理想的な方法は、このjavascriptを指示に入れることです。それは私が通常プラグインを含む方法です。 – rabruce

+0

あなたのコードは単純なオブジェクトです。あなたはこのオブジェクトにどこからアクセスできる必要がありますか?あなたの角度コードの中に置いたときにうまくいかないのは何ですか? – forgivenson

答えて

2

に包まれたHTMLページに座っangularjsと直接ことはできません。あなたは、スクリプトを含めて進むことができ、あなたはその後、これが完了すると

populateAwin({ 
    order_total: $scope.order_total, 
    order_id: $scope.order_id, 
    cats: $scope.cats 
}); 

下に示すように、必要なデータを渡すことにより、あなたのコントローラからこの関数を呼び出す必要が

//Note: this is a new JS file included in your main html 

(function() { 
    "use strict"; 

    window.AWIN = {}; 

    window.populateAwin = function(args) { 
     //<![CDATA[ 

     /*** Do not change ***/ 
     AWIN.Tracking = {}; 
     AWIN.Tracking.Sale = {}; 

     /*** Set your transaction parameters ***/ 
     AWIN.Tracking.Sale.amount = args.order_total; 
     AWIN.Tracking.Sale.orderRef = args.order_id; 
     AWIN.Tracking.Sale.parts = args.cats; 
     AWIN.Tracking.Sale.voucher = ''; 
     AWIN.Tracking.Sale.currency = 'GBP'; 
     AWIN.Tracking.Sale.test = '0'; 
     AWIN.Tracking.Sale.channel = 'aw'; 
     //]]> 
    } 

}()); 

下のような何かをする必要がありますあなたのコントローラから以下のように動的に表示されます

var scriptEl = document.createElement("script"); 
scriptEl.type = "text/javascript"; 
scriptEl.defer = "defer"; 
scriptEl.src = "https://www.dwin1.com/xxxx.js"; 

document.body.appendChild(scriptEl); 
関連する問題