добавить и использовать пользовательский файл js в приложении angular 7 - PullRequest
0 голосов
/ 25 апреля 2019

при условии, что у меня есть файл js mylib.js в приложении angular 7 , расположенном в assets/mylib.js:

mylib = function(){
    return {
        hi: function() { alert('hi'); }
    };
}();

, и я хочу, чтобы в моем hero-form.component.ts была возможностьчтобы позвонить mylib.hi(), каков будет правильный способ сделать это?

Я попытался сделать то же самое, что и пакет jquery, который я установил, и он работает, поэтому я добавил в angular.json -> projects/myproject/architect/build/options/scripts следующим образом:"scripts": ["node_modules/jquery/dist/jquery.js", "src/assets/mylib.js"] и в hero-form.component.ts:

import * as $ from "jquery"; // works, installed via npm
import * as mylib from "mylib"; // cannot find module mylib

Я проверяю это, вызывая компонент:

  ngOnInit() {
    $('body').css('background','gainsboro');
    mylib.hi();    
  }

обратите внимание, я не хочу добавлять скрипты вЗаголовок index.html глобально, я хочу вызвать import для каждого компонента, который нуждается в этом

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Экспорт mylib из mylib.js как (просто поместите его в конец файла):

export mylib;
0 голосов
/ 26 апреля 2019

(так как ответ, который помог мне, был удален, я публикую это)

  • в hero-form.component.ts я должен был использовать

declare const mylib: any;

вместо import * as mylib from "mylib"

  • еще одна важная вещь заключается в том, что вы закрыли консоль (или Ctrl + C), запустив ng serve после добавления сценариев в angular.json и снова запустив ng serve

  • Мне также пришлось удалить export mylib; из mylib.js, как предложено в ответе, так как это приводило к ошибке unexpected token export

Я получил этот ответ, следуя статье, предложенной в комментариях: https://www.truecodex.com/course/angular-6/how-to-use-external-js-files-and-javascript-code-in-angular

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...