gpt4 book ai didi

javascript - AngularJS动态调用函数

转载 作者:行者123 更新时间:2023-12-02 16:03:26 25 4
gpt4 key购买 nike

此时,我还是 AngularJS 的新手。

这有效:

scope.$apply(scope.hideTooltip());

但是动态调用该函数不起作用:

scope.$apply(
scope.$eval(attrs.ngEnter, {'event': event})
);

HTML:

<input type="text" ng-model="value" ng-enter="hideToolTip()" />

整个指令:

   app.directive('ngEnter', function() {
return function(scope, element, attrs) {
console.log(scope.hideTooltip());
element.bind("keydown keypress", function(event) {
if(event.which === 13) {
console.log(attrs.ngEnter);
scope.$apply(
scope.$eval(attrs.ngEnter, {'event': event})
);
event.preventDefault();
}
});
};
});

那么,如何在 AngularJS 指令中动态调用函数?

最佳答案

似乎您错过了 HTML 中 Controller 方法的参数

// you have missed the event parameter.

<input type="text" ng-model="value" ng-enter="hideToolTip(event)" />

app.directive('ngEnter', function() {
return function(scope, element, attrs) {

element.bind("keydown keypress", function(event) {
if (event.which === 13) {

console.log(attrs.ngEnter);
scope.$apply(
scope.$eval(attrs.ngEnter, {
'event': event
})
);
event.preventDefault();
}
});
};
});

在 Controller 中

 $scope.hideToolTip = function(event) {
console.log(event);
}

这是DEMO

附注由于您绑定(bind)了 keydownkeypress 事件,这将在按 ENTER 后调用 Controller 函数两次。

并且不要忘记删除 console.log(scope.hideTooltip()); 行。

关于javascript - AngularJS动态调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30978819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com