假设我有一些类似于以下内容的JS代码: blah.js:
$(document).ready(function() {
$("#navigation".click())
{
$("#navigation").animate('blah');
}
});
将这个JS包含在Angular应用程序中的最佳方法是什么?我只是在组件文件中包含require脚本吗?
import { Component } from '@angular/core';
require ('blah.js');
@Component
({
selector: 'home',
template: ...,
styles: ...
})
export class HomeComponent
{
}
道歉,如果问题不清楚,我对Angular 2很新。
答案 0 :(得分:0)
这不是Angular的做事方式。您需要将此代码转换为Angular组件。您应该创建<app-navigation>
组件。
<强> navigation.component.ts 强>
@Component
({
selector: 'app-navigation',
template: ...,
styles: ...
})
export class NavigationComponent
{
@ViewChild('navigation') navigation: ElementRef;
onClick() {
// Do your stuff
// If you need to access navigation DOM element
// Use this.navigation.nativeElement
}
}
<强> navigation.component.html 强>
<div id="navigation" #navigation> ... </div>
答案 1 :(得分:0)
您经常会在assets
下看到一个src
文件夹,而该文件夹又有一个scripts
文件夹。 app/src/scripts/js/*.js
。这是存储JavaScript文件的好地方。
您可以创建文件并将其附加到窗口对象:
window.ready = function() {
$("#navigation".click())
{
$("#navigation").animate('blah');
}
});
返回您的应用,您可以创建一个组件或服务,然后按照以下方式从中调用*.js
功能:
@Component
({
selector: 'app-navigation',
template: ...,
styles: ...
})
export class NavigationComponent
{
@ViewChild('navigation') navigation: ElementRef;
onClick() {
// Do your stuff
// If you need to access navigation DOM element
// Use this.navigation.nativeElement
// Call your function
(<any>window).ready();
}
}