如何从jQuery调用Angular方法
这个问题和那个问题相似 但我认为我的例子有点不同 在如何从jQuery调用Angular方法,jquery,angular,Jquery,Angular,这个问题和那个问题相似 但我认为我的例子有点不同 在Angular项目中,我有一个按钮: <button id="button1" #tbName title="tbName" class="btn btn-lg btn-outline-primary" (click)="open(content,tbName.title)">Launch demo modal</button> 直接调用open(content,title)angular方法的jQuery函数应该是什
Angular
项目中,我有一个按钮:
<button id="button1" #tbName title="tbName" class="btn btn-lg btn-outline-primary" (click)="open(content,tbName.title)">Launch demo modal</button>
直接调用open(content,title)
angular方法的jQuery函数应该是什么样子?我强烈建议您学习使用angular(&w/o jQuery),而不是将两者混合使用。
现在我们在SOF上,你问了些问题。你的代码有很多错误,但嘿,那不是我的项目,所以我只回答
如果要使用JQuery访问角度函数,请将其绑定到窗口,如下所示
ngOnInit() {
window['MyComponent']['open'] = this.open.bind(this);
}
现在在JQuery中,您可以使用
$(...).click(function() {
window.MyComponent.open('content of the modal', 'title of the modal');
});
我强烈建议您学习使用Angular(&w/o JQuery),而不是将两者混合使用。
现在我们在SOF上,你问了些问题。你的代码有很多错误,但嘿,那不是我的项目,所以我只回答
如果要使用JQuery访问角度函数,请将其绑定到窗口,如下所示
ngOnInit() {
window['MyComponent']['open'] = this.open.bind(this);
}
现在在JQuery中,您可以使用
$(...).click(function() {
window.MyComponent.open('content of the modal', 'title of the modal');
});
通常,您不能触发在和Angular组件中定义的方法,因为为此您需要类的实例。 请注意,您从未在代码中的任何地方调用
newcomponent()
?
相反,您只需指定类并将它们与模板绑定,然后让Angular完成其余的工作
也就是说,您可以将该方法作为对某个全局对象的引用传递。
例如,您可以执行以下操作:
class Component {
public fn () {} // <-- say you need this function
constructor () {
window.fn = this.fn.bind(this)
}
}
类组件{
public fn(){}/通常,您不能触发在和Angle组件中定义的方法,因为为此您需要类的实例。
请注意,您从未在代码中的任何地方调用newcomponent()
?
相反,您只需指定类并将它们与模板绑定,然后让Angular完成其余的工作
也就是说,您可以将该方法作为对某个全局对象的引用传递。
例如,您可以执行以下操作:
class Component {
public fn () {} // <-- say you need this function
constructor () {
window.fn = this.fn.bind(this)
}
}
类组件{
public fn(){}//是open()
按钮对象上的一个方法吗?为什么不让jQuery直接触发click?$(“#按钮1”)。click();
@connexo正确。@Vlad274我是这样做的,但最后我想删除这个按钮并从jQuery函数调用open()。是open()
button
对象上的一个方法?为什么不让jQuery直接触发点击?$(“#button1”)。点击()
@connexo Correct.@Vlad274我是这样做的,但最后我想删除这个按钮并从jQuery函数中调用open()。我强烈建议您学习使用角度(&w/o jQuery)不是将两者混为一谈。
-没错,让我高兴:)@ShadowFoOrm不想触发那种反应,但谢谢你:谢谢你:谢谢,我知道,但我不能删除这个jQuery。谢谢你的帮助。我可以调用函数,但要触发更改检测,我需要更新我的组件。我可以用NgZone来完成,就像文档中说,非常感谢我强烈建议您学习使用Angular(&w/o JQuery)不是将两者混为一谈。
-没错,让我高兴:)@ShadowFoOrm不想触发那种反应,但谢谢你:谢谢你:谢谢,我知道,但我不能删除这个jQuery。谢谢你的帮助。我可以调用函数,但要触发更改检测,我需要更新我的组件。我可以用NgZone来完成,就像文件上说,感谢你的帮助