Angular:点击事件可以运行单个语句吗?

sla*_*den 3 angular

在 Angular 4 中,是否可以在单击事件中执行代码而无需为其编写函数?例如

<button (click)="bool=true; console.log("print"); Function()">Button1</button>
Run Code Online (Sandbox Code Playgroud)

阅读了一些内容后,这可能不可能的原因是 html 元素(在本例中为按钮)属于 typescript 组件,而不是 html 模板,因此您不会在函数之外有代码。但是......我不确定这是否接近正确的理解。

编辑:

这篇文章 console.log notworking in Angular2 Component (Typescript)回答了 console.log 的问题,但在其他情况下仍然需要一些解释,例如

<button (click)="bool=true">Button1</button>

接受的答案解释了其局限性。

小智 5

可以在点击事件中编写小表达式,但有限制。请参考这里的官方文档

例如,您可以直接在单击事件处理程序的表达式中更新组件实例的属性,而无需将这个简单的表达式包装在组件实例内的函数中。

我创建了一个简单的计数器组件来演示内联表达式。请参考这个例子

<button (click)="counter=counter+1">INC</button>
<button (click)="decrement()">DEC</button>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助