我想动态更改与事件关联的功能。我试过这个:
(click) = "{{myFunction}}"
但是我得到一个错误"解析器错误:得到插值({{}})其中表达式是预期的"。 我需要在条件下将TypeScript myFunction更改为一个或其他函数。
答案 0 :(得分:1)
(click)="myFunction()"
class MyComponent {
myFunction = this.click;
click() {
console.log("clicked");
this.myFunction = () => { };
setTimeout(() => this.myFunction = this.click, 1000);
}
}
答案 1 :(得分:0)
我为你创建了一个plunker:https://plnkr.co/edit/se3kz5AF4sSmgHue8W7u?p=preview
{% load staticfiles %}
<!-- html code -->
<body>
{% block content %}
{% endblock %}
</body>
</html>
答案 2 :(得分:0)
您尝试做的技术术语是&#34;限制&#34;。尝试搜索它。许多库将以某种形式提供该功能。大多数情况下,它被实现为一个&#34;更高阶函数&#34;:一个函数,它接受一个底层函数并返回它的限制版本。基本逻辑是:
function throttle(fn, ms) {
let last = 0;
return function() {
const now = +new Date();
if (now > last + ms) {
last = now;
fn.apply(this, arguments);
}
};
}
现在在你的组件中:
(click)="myFunction()"
myFunction = throttle(this.click);