繁体   English   中英

AngularJs Directive Link函数无法访问attr属性

[英]AngularJs Directive Link function can't access attr attribute

我在angularJS中有以下指令的返回

return {
            restrict: _restrict,
            link: function (scope, element, attrs) {
                $timeout(LinkPre, 0);  //Calling a scoped method
            },
            templateUrl: ConstrutorapiTemplatesChart,
            scope: "@",
            controller: Controller
        }

我的LinkPre函数是下面的函数

var LinkPre = function (scope, elem, attrs) {
            attrs.$observe(_attrUrl, function (relatorio) {
                if (relatorio != "") AoMudarUrl(scope, elem, relatorio);
            });
        }

我在LinkPre函数上遇到错误,该attrs是未定义的

无法读取未定义的属性“ $ observe”

有人有什么想法吗?

Obs:我需要在呈现指令后执行Link函数

首先,您需要正确地将参数传递给函数。 然后,如果您的函数是在关联的控制器中定义的,则需要在链接函数中添加控制器,并通过控制器引用来调用该函数。

尝试:

link: function (scope, element, attrs, myController) {
    $timeout(myController.LinkPre.bind(this, scope, element, attrs));  
}

多数民众赞成因为您的LinkPre函数在超时调用时不会获取任何参数,并且多数民众赞成在为什么attrs和所有参数都未定义的情况下,您可以尝试以下操作:

$timeout(function() {
    LinkPre(scope, elem, attrs);
});

也不需要零结束

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM