简单的问题,我希望。
我想运行一个脚本当$ document.ready()的Angular2等价物被触发。什么是实现这个的最好的方法?
我试过把脚本放在index.html的末尾,但是我发现,这不工作!我认为它必须在某种类型的组件声明?
是否可以从.js文件运行加载脚本?
编辑 – 代码:
我有以下js和css插件注入我的应用程序(从Foundry html theme)。
<link href="css/themify-icons.css" rel="stylesheet" type="text/css" media="all" /> <link href="css/bootstrap.css" rel="stylesheet" type="text/css" media="all" /> ... <script src="js/jquery.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/flexslider.min.js"></script> ... <script src="js/scripts.js"></script> //This initiates all the plugins
如上所述,scripts.js实例化了整个事物,因此需要在Angular准备好之后运行。 script.js
工作原理:
import {Component,AfterViewInit} from 'angular2/core'; @Component({ selector: 'home',templateUrl: './components/home/home.html' }) export class HomeCmp implements AfterViewInit { ngAfterViewInit() { //Copy in all the js code from the script.js. Typescript will complain but it works just fine }@H_403_19@
@H_403_19@
你可以在你的Angular根组件的ngOnInit()中自己触发一个事件,然后在Angular之外监听这个事件。
这是Dart代码(我不知道TypeScript),但不应该难以翻译
@Component(selector: 'app-element') @View( templateUrl: 'app_element.html',) class AppElement implements OnInit { ElementRef elementRef; AppElement(this.elementRef); void ngOnInit() { DOM.dispatchEvent(elementRef.nativeElement,new CustomEvent('angular-ready')); } }@H_403_19@ 原文链接:https://www.f2er.com/angularjs/145181.html