javascript - 我可以在 Angular 模板中声明一个简单的函数吗?

标签 javascript angularjs templates

我有一个组件,它将绑定(bind)“页面” Controller 中的函数。

<my-component fn=""></my-component>

然后我的组件将执行该函数。我的问题是:我可以在 View 中创建一个简单的匿名函数来传入吗?像这样的事情:

<my-component fn="(obj)=>obj.name"></my-component> 

<my-component fn="function(obj){return obj.name;}"></my-component>

这些语法不起作用,但我想知道是否可以完成类似的操作。我找不到它的例子,但我觉得它应该是可能的。

最佳答案

这是不可能的。这当然不应该这样做。这种模式看起来比 ng-init 更糟糕(它本身并不推荐)。这将造成巨大的安全漏洞。

Angular 表达式解析器 takes care of special objects不要让类似的事情

ng-init="{{ fn = constructor.constructor('malicious code') }}"

因为eval是邪恶的

关于javascript - 我可以在 Angular 模板中声明一个简单的函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41229084/

相关文章:

c++ - 作为表达式的模板参数语法

javascript - ReactJS - super 表达式必须为 null 或函数,而不是未定义

javascript - 如何使用 Angular js在指令中给出点击事件?

javascript - AngularJS - 如果表单无效则阻止提交表单

c++ - 从模板方法返回在模板类内部声明的结构

c++ - 将类型附加到标量的首选机制?

javascript - 条件为真时打开引导模式

javascript - 在 Cookie 中保存数组并恢复 Javascript

带标题的 Javascript 图像 slider - 标题不显示

javascript - Angular 三级嵌套网址