1

Let's just say I make a custom JavaScript file ie 'custom.js'

How would I implement this into a Component?

If I add 'custom.js' to index.html, that's fine but is there any way I can add it specifically to the component?

4
  • what would this file have? Commented Dec 1, 2017 at 18:59
  • animation, ect. For example, moving around a navigation bar, ect Commented Dec 1, 2017 at 19:00
  • Can't you just import from inside your component definition? Although, I guess that would require it to be a module. Is it possible to change your custom.js into a module? Commented Dec 1, 2017 at 19:08
  • Can you show how your .js looks like and where you have kept it in your project? Commented Dec 1, 2017 at 19:44

3 Answers 3

6

Step: 1=> Create and write your js code say "synapse.js" in /app folder. The function or constant which you to use in a component should be exported using export keyword. for ex:

synapse.js

export function synapseThrow() {
  return 'hello'
}

export const MY_VAR = 'world!';

Step: 2=> in angular-cli.json, add the below part in apps object.

"scripts": ["app/synapse.js"]

Step: 3=> in tsconfig.json, add the below property in compilerOptions.

"allowJs": true

Step: 4=> in any component say in "app.component.ts" import the "synapse.js" file using import keyword.

app.component.ts

// other imports

import { MY_VAR, synapseThrow } from './synapse';

// other app code here

ngOnInit(){
  const returned = MY_VAR;
  const returnFunc = synapseThrow();
}
Sign up to request clarification or add additional context in comments.

Comments

1

Try this way:

  • Put js file in path: assets/js/custom.js
  • Code your component

ts file

export class MyComponent implements AfterViewChecked {
  constructor(private elementRef: ElementRef) {

  }
  ngAfterViewChecked() {
    var s = document.createElement("script");
    s.type = "text/javascript";
    s.src = "../assets/js/custom.js";
    this.elementRef.nativeElement.appendChild(s);
  }
}

Comments

0

Try declaring a variable that you have inside of your custom.js file


declare var aFunction: any;

import '../../../js/custom.js';

export class ExampleComponent{

    variable: any;

    constructor() { }

    ngOnInit() { 
       new aFunction(this.variable);  //aFunction() is inside custom.js
    }
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.