在AngularJs中动态地将url添加到脚本标记中
Dynamically adding a url into a script tag in AngularJs
我正在用angularjs构建的SPA中实现一个支付网关。
问题是,这个支付网关要求您包含一个带有支付id的脚本。
这是我目前的设置。。。。(注意,控制器只是运行一些服务器端脚本,它返回有关付款的所有信息,我只需要获得id)
这是我的控制器:
(function (){
var PaymentGateController = function ($scope, $rootScope, $state, paymentFactory, $sce) {
$scope.ready = false;
paymentFactory.getResult()
.then(function (result) {
$scope.ready = true;
$scope.url = result.data.id;
}, function(error) {
console.log(error);
});
}
PaymentGateController.$inject = ['$scope', '$rootScope','$state', 'paymentFactory', '$sce'];
angular.module('hcbcApp.paymentGate', []).controller('PaymentGateController', PaymentGateController);
}());
这是我的观点:
<div ng-if="ready">
<form action="https://peachpayments.docs.oppwa.com/tutorials/integration-guide#" class="paymentWidgets">VISA MASTER AMEX</form>
<script type="text/javascript" src="https://test.oppwa.com/v1/paymentWidgets.js?checkoutId={{url}}"></script>
</div>
不要认为你能做到这一点,在angular中进行引导阶段之前,首先加载脚本。寻找延迟加载解决方案。这篇文章似乎适合你想做的事情:
单页应用程序-基于部分视图动态加载js文件
这感觉很脏,但它有效,所以我要用它…
添加到我的控制器:
$scope.makeScript = function (url) {
var script = document.createElement('script');
script.setAttribute('src', url);
script.setAttribute('type', 'text/javascript');
document.getElementById('paymentDiv').appendChild(script);
};
然后当我得到网址时
$scope.url = "https://test.oppwa.com/v1/paymentWidgets.js?checkoutId=" + result.data.id;
$scope.makeScript($scope.url);
相关文章:
- 如何将脚本添加到<头部>标记
- 将Google Adwords脚本添加到Vaadin应用程序中
- 如何以编程方式将内容脚本添加到 iframe 文档
- 使用java脚本添加图像进行测验
- 我如何向这个脚本添加一个点击按钮循环URL函数(按给定顺序在URL之间切换),或者这可能吗
- 我在向jquery脚本添加延迟时遇到问题
- 如何使用java脚本添加链接
- 如何将自定义脚本添加到运行javascript文件的package.json文件中
- 取消绑定由加载jQuery'的外部脚本添加的事件;s的getScript函数
- 如何最好地将跟踪脚本添加到您的网站
- 如何将谷歌地图脚本添加到wordpress帖子中
- 如何让我的重定向脚本添加一个随机后缀来选择网站
- 星云脚本添加在 EasyPHP 上
- ASP.Net 将脚本添加到脚本管理器时,更新进度中断
- 从脚本添加的输入框中获取值
- 向此 jQuery 脚本添加动画
- 如何使用我的 jQuery 日期选择器脚本添加 dd-mm-yy 的日期格式
- 使用脚本添加两个同名的数组值
- 让 Modernizr.load() 将脚本添加到页面末尾
- 将脚本添加到 asp.net 内容页面