Angular 4从外部html执行函数
我是新手。 我有一个进行API调用的组件。 API调用将返回一些包含angular 4代码的html:Angular 4从外部html执行函数,angular,dynamic,Angular,Dynamic,我是新手。 我有一个进行API调用的组件。 API调用将返回一些包含angular 4代码的html: (click) = "functionName()". 问题是,functionName从未被调用我不需要查看您的代码来告诉您所做的是错误的 当你写作时 (click)="functionName()" 你不是说 处理此标记上的单击事件 你是说 请全能的天使,当你把我的代码编译成原生Javascript时,你能在点击这个标签时绑定一个事件吗 (好吧,我说得太过分了,但你
(click) = "functionName()".
问题是,
functionName
从未被调用我不需要查看您的代码来告诉您所做的是错误的
当你写作时
(click)="functionName()"
你不是说
处理此标记上的单击事件
你是说
请全能的天使,当你把我的代码编译成原生Javascript时,你能在点击这个标签时绑定一个事件吗
(好吧,我说得太过分了,但你明白了)
这意味着在一个模板中,当你写这个;它在编译时更改为
onclick="a()" // It's minified once bundled
因此,如果您在数据库中编写此代码,它将不会被编译,这意味着它既不理解(单击)
是什么,也不理解functionName
代表什么
你有什么选择?
例如,您可以将其写入数据库中
onclick="windowFunctionName()"
在组件中创建绑定到窗口的函数,而不是编写的函数:
ngOnInit() {
window['windowFunctionName'] = () => { /* ... */};
}
ngOnDestroy() {
delete(window['windowFunctionName']; // delete it for memory purpose
}
你能展示你的完整代码(组件、html和服务)吗?我们不能像Angular1中那样编译html吗?不。AngularJS是普通的vanilla JS,现在你使用Typescript:Typescrpit需要由CLI编译成vanilla JS。这意味着,如果您从DB请求一些东西,您的代码已经编译好了,因此可以细微地运行。谢谢@trichetriche