以下是我正在使用的当前代码
App.directive('afterRender', ['$timeout', function ($timeout) {
var def = {
restrict: 'A',
terminal: true,
transclude: false,
link: function (scope, element, attrs) {
$timeout(scope.$eval(attrs.afterRender), 0);
}
};
return def;
}]);
我称之为
after-render="disableFullPage"
现在我遇到的当前代码的问题是disableFullPage函数被称为罚款。但是角度不会渲染任何数据。所以,如果我把
{{message}}
未呈现。此外,如果我删除后渲染,渲染工作正常。有人可以帮我解决我做错了什么,如果可能的话请编辑上面的代码并提供一个简短的描述,以便我更好地理解,因为我对角度相对较新。
答案 0 :(得分:1)
我看到这里发生了两件事。
首先,您正在设置terminal: true
,这将阻止对指令和表达式的进一步解释。
如果设置为true,则当前优先级将是最后一组 将执行的指令(当前优先级的任何指令 仍将按相同优先级的执行顺序执行 未定义)。 请注意中使用的表达式和其他指令 指令的模板也将被排除在执行之外。
第二次,$parse
将评估您在当前范围的上下文中提供的任何表达式。这就像你刚刚写了一行javascript。
在上面的示例中,after-render="disableFullPage"
假定disableFullPage
是一个函数,那么什么都不会发生。您需要添加括号,就像正常调用函数一样:
after-render="disableFullPage()"