将角度值传递给公共JavaScript
我试图将一个值从角度范围传递到通用JavaScript JavaScript是这样的将角度值传递给公共JavaScript,javascript,angularjs,Javascript,Angularjs,我试图将一个值从角度范围传递到通用JavaScript JavaScript是这样的 <script type="text/javascript"> var epaycode = null; var epaybuysum = null; paymentwindow = new PaymentWindow({ 'merchantnumber': epaycode, 'amount': epaybuysum, 'currency': "DKK", 'windowstate': "4",
<script type="text/javascript">
var epaycode = null;
var epaybuysum = null;
paymentwindow = new PaymentWindow({
'merchantnumber': epaycode,
'amount': epaybuysum,
'currency': "DKK",
'windowstate': "4",
'paymentcollection': "1",
'iframeheight': "250",
'iframewidth': "500"
});
paymentwindow.append('payment-div');
setTimeout(function(){
paymentwindow.open();
}, 1000);
$scope.showpay = function () {
$window.epaybuysum = $scope.buysum * 100;
$window.epaycode = $scope.ePayCode;
};
在初始化公共JavaScript后调用Angular showpay()函数。buysum和ePayCode在程序的前面设置。它们具有值,并使用console.log()进行测试
为什么epaybuysum和epaycode不被传输到公共JavaScript?
有没有其他解决方案可以将值从角度控制器传递到通用JavaScript?尝试以下方法:
(function (angular, epaycode) {
'use strict';
var module = angular.module('abc', []);
//Your controller etc.
}
})(angular, epaycode);
更新注释部分中的plunker显示了如何执行此操作。查看此plunker:
{{buyCode}}。。。{{buySum}}
呼叫showPay
Console.log
第一个按钮调用showPay函数(作用域上的函数)。第二个按钮调用console.log(在angular控制器外部,简单js)。对于这个简单的用例,它似乎像预期的那样工作。您如何调用showPay函数 您是否调试了showpay的功能?它是否击中了设置为
$window
的代码行?如果ePayCode
是全局声明的,那么您应该能够直接分配值ePayCode=$scope.buysum*100代码>showpay点击$window代码..如何将ePayCode和sum声明为全局?如果它们没有在函数中声明,那么它们是全局的。目前他们是globalDo你有一个Fiddler或Github的例子吗?据我所知,解决方案中的数据是从通用JavaScript发送的??我错了吗?是的。你说得对。plunker中的变量测试是一个简单的JS变量,正在注入Angular中。似乎我对此有计时问题。。我可以从Angular Controller调用一个公共JavaScript函数吗?可以。使用$window,您可以访问所有全局定义的js(包括函数)。所以您可以这样做:$window.myFunction()--如果myFunction是在顶层(而不是在另一个函数中)声明的,那么效果很好。。谢谢你!!
<div ng-controller="MainCtrl">
<input ng-model="buyCode">
<input ng-model="buySum">
<p>{{buyCode}} ... {{buySum}}</p>
<button ng-click="showPay()">call showPay</button>
</div>
<button onclick="buttonClick()">Console.log</button>