gpt4 book ai didi

html - 作用域的 eval 在 AngularJS 指令中返回未定义

转载 作者:行者123 更新时间:2023-11-28 05:00:02 26 4
gpt4 key购买 nike

背景:当 AngularJS 指令代码中发生某些事情时,我正在尝试运行回调。

相关代码:

HTML:

<img-cropper onselect="updateAvatarData" x="100" y="100" src="{{tempAvatar}}" id="avatarCropper"/>

Controller :

$scope.updateAvatarData = function(c){
alert("¡¡¡Funciona!!!!");
};

指令:

<<more code up here>>

link: function(scope,element, attr) {
scope.wsId = attr.id+'WS';
scope.pvId = attr.id+'preview';
scope.x = attr.x;
scope.y = attr.y;
scope.aspectRatio = scope.x/scope.y;
scope.previewStyle = "width:"+scope.x+"px;height:"+scope.y+"px;overflow:hidden;";
scope.onSelectFn = scope.$eval(attr.onselect);

<<more code down here>>

问题出在最后一行“scope.onSelectFn = scope.$eval(attr.onselect);”。那个“scope.$eval(attr.onselect);”返回“未定义”。 attr.onselect 工作正常,它返回在“onselect”属性上键入的函数的名称。

我已经用通过属性传递的函数制作了其他指令,没有问题,但我无法找到我在这里做错了什么。

  • 提前致谢

最佳答案

当您可以轻松使用 Angular 提供的“&”功能时,为什么要这样做

calling method of parent controller from a directive in AngularJS

不过,如果你想像这样调用父函数,那么你应该使用 $parse 而不是 eval,请在使用时查看下面的小示例

  link: function (scope,element,attrs) {
var parentGet = $parse(attrs['onselect']);

var fn = parentGet(scope.$parent);
fn();

},

关于html - 作用域的 eval 在 AngularJS 指令中返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16970876/

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