[英]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.