<script> не работает в компонентах angular 5 (Plaid Link с Angular 2+)

Я пытаюсь использовать Plaid Link внутри веб-приложения Angular. Кажется, что сценарий, предоставляемый plaid, работает только внутри <body> файла index.html. Когда я пытаюсь использовать его в компоненте, скрипт просто не запускается.

Я слежу за документацией на https://plaid.com/docs/quickstart/#step-2-simple-integration

У них есть код jquery, который отлично работает, если я создаю просто базовый файл html с ним внутри, но не работает внутри компонента angular /

Вот пример кода, который не работает в angular?

`<form id='plaid-link-form'></form>
<script
src = "https://cdn.plaid.com/link/v2/stable/link-initialize.js"
data-client-name = "My App"
data-form-id = "plaid-link-form"
data-key = "[PUBLIC KEY]"
data-product = "auth"
data-env = "sandbox">
</script>`

Обновлено: Я совершил ошибку. Я использую Angular 5, а не 2.

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
0
796
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если вы используете system.js, попробуйте импортировать скрипт с помощью функции system.jsimport, как показано ниже: -

export class YourComponent {
  constructor(){
    System.import('https://cdn.plaid.com/link/v2/stable/link-initialize.js').then(Plaid => {
      var handler = Plaid.create({
        clientName: 'My App',
        env: 'sandbox',
        key: '[PUBLIC_KEY]', // Replace with your public_key to test with live credentials
        product: ['auth'],
      });
    });
  }
}

Если вы используете webpack, вы можете вызвать функцию require.ensure для загрузки необходимого файла.

export class YourComponent {
  constructor(){        
   require.ensure(['https://cdn.plaid.com/link/v2/stable/link-initialize.js'], require => {
     let Plaid = require('<module_path>');
     Plaid.create({
       // config object
     })
   }); 
  }
}

Я исправил свой вопрос, я использую Angular 5, а не Angular 2. Я попытался добавить system.js, но, похоже, мне не удается заставить его работать. Я добавил скрипт в индекс: <script> System.import ('app'). Catch (function (err) {console.error (err);}); </script> Но приложение не компилируется, и я получаю сообщение об ошибке, что имя «Система» не может быть найдено и модуль не найден по URL-адресу.

Baron 25.08.2018 20:57

@Baron - С webpack проверяли?

Ankit Sharma 26.08.2018 09:38
Ответ принят как подходящий

Я обнаружил, что Ionic 2 (Angular2 +) использует клеточную ссылку в этом репозитории. https://github.com/pbernasconi/plaid-link-ionic-2-example/tree/master/src Я добавил сценарий в индекс, а затем запустил его в контроллере. Я не совсем понимаю, как в игру вступает файл declrations.d.ts, но сейчас у меня есть файл с таким же кодом.

Другие вопросы по теме