2017-02-13 78 views
1

我想动态创建一个使用包含我的角度2组件呈现的数据对象的价格的PayPal结帐按钮。我想通过贝宝快递代码一个金额,并让我打开我的结帐组件,但我有巨大的问题,为我提供了一个按钮。PayPal快速结算角度2组件 - 加载问题?

我遵循这个指南:https://developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/basic-integration/但如果我尝试包括paypals组件中的脚本代码它不会加载,如果我把代码在我的index.html脚本加载,并给了我这个错误:

ppxo_xc_ppbutton_error Object {error:“Error:Document is ready and element#paypal-butto ... calhost:3000/vendor.bundle.js:139776:25)[]”,timestamp:1486999989713,windowID:“be296e274d”,pageID:“a63dc0f8ab ”主机: “本地主机:3000” ...}

错误:文献是准备和元素#贝宝按钮不会在https://www.paypalobjects.com/api/checkout.js:5176:39 [] 存在 在Zone.runTask(http://localhost:3000/vendor.bundle.js:138551:47)[=>] 在ZoneTask.invoke(http://localhost:3000/vendor.bundle.js:138745:33)[] 在data.args(匿名功能)(http://localhost:3000/vendor.bundle.js:139776:25)[]

  • unhandled_error对象{消息:“错误:文档准备好和元件#paypal-button does not exist“,stack:”Error:Document is ready and element#paypal-butto ... calhost:3000/vendor.bundle.js:139776:25)[]“,errtype:”[object Object]“ ,事件:“ppxo_unhandled_error”,版本:“4.0.39”...} zone.js:155未捕获ZoneAwareError {__zone_symbol__error:错误:文档已准备好,元素#paypal-button不存在 在https://www.paypalobjects。,__zone_symbol__stack:“错误:文档已准备就绪,元素#paypa 1-butto ... calhost:3000/vendor.bundle.js:139776:25)[]“}
+0

你有使用'ID = “贝宝按钮”'元素?当你调用'paypal.Button.render()'时,该元素是否存在? – bluepnume

+0

my id =“paypal-button元素在角度组件中呈现的时间比我在插入贝宝脚本后的时间要长,这会导致上面发布的错误,只有当脚本放置在index.html中时才会加载脚本。最后使用后端SDK并在我的快速服务器上实现它。感谢虽然 – seanEd

回答

2

您需要添加下面的代码在你的角度成分 声明让贝宝:所有;

然后你可以使用paypal.Button.render({...})方法ngOnInit

+0

我与OP的情况相同,但是您的解决方案对我无效 – loicb

+0

不工作,我做了 –

+0

它工作!我的人谢谢 正如你所说的,在组件(声明前级)I“声明”一个变量: 让贝宝:所有; 然后,在ngOnInit()方法,我称之为paypal.Button.render({...])函数。 在我的模板中,我把把要包含按钮的div和他们的工作! 谢谢。 – Thisisalexis