我在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函数
答案 0 :(得分:0)
首先,您需要将参数正确传递给函数。 然后,如果您的功能是在关联的控制器内定义的,则需要在链接功能中添加控制器并通过控制器参考调用该功能。
尝试:
link: function (scope, element, attrs, myController) {
$timeout(myController.LinkPre.bind(this, scope, element, attrs));
}
答案 1 :(得分:0)
多数民众赞成因为你的LinkPre函数在超时调用时没有收到任何aguments,这就是为什么attrs和所有参数都是未定义的,你可以尝试以下方法:
$timeout(function() {
LinkPre(scope, elem, attrs);
});
无需结束零