我目前正致力于将Backbone项目移植到Angular 2项目(显然有很多变化),其中一项项目要求需要某些方法可以公开访问.
一个简单的例子:
零件
@component({...})
class MyTest {
private text:string = '';
public setText(text:string) {
this.text = text;
}
}
Run Code Online (Sandbox Code Playgroud)
显然,我可以<button (click)="setText('hello world')>Click me!</button>,我也想这样做.但是,我希望能够公开访问它.
像这样
<button onclick="angular.MyTest.setText('Hello from outside angular!')"></click>
Run Code Online (Sandbox Code Playgroud)
或这个
// in the js console
angular.MyTest.setText('Hello from outside angular!');
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,我希望该方法公开暴露,以便可以从angular 2应用程序外部调用它.
这是我们在骨干网上所做的事情,但我想我的Google foo不够强大,无法使用angular找到一个好的解决方案.
我们宁愿只公开一些方法并列出公共api,所以如果你有这方面的提示,那将是一个额外的奖励.(我有想法,但欢迎其他人.)
如何检测AngularJS是否在当前页面中加载.我想从CDN加载AngularJS,如果失败,我想从LocalServer加载.以下脚本为JQuery执行此操作
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="libs/jquery-1.8.2.min.js"><\/script>')</script>
Run Code Online (Sandbox Code Playgroud)
AngularJS有类似的方法吗?