Javascript AngularJs指令链接功能可以';t访问属性

Javascript AngularJs指令链接功能可以';t访问属性,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我在angularJS中返回了以下指令 return { restrict: _restrict, link: function (scope, element, attrs) { $timeout(LinkPre, 0); //Calling a scoped method }, templateUrl: ConstrutorapiTemplatesChart,

我在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函数中得到一个错误,即属性未定义

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

有人知道为什么吗


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

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

尝试:

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

这是因为您的LinkPre函数在被timeout调用时不会收到任何AGUENT,这也是为什么ATTR和所有参数都未定义的原因,您可以尝试以下操作:

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

也不需要结束零

执行此操作时,将根据以下规则在rendernot之前调用func